本站有开放API请求接口,线报酷开放调用接口说明V2 - 线报酷 (xianbao.fun),通过调用接口就可以获取本站最新数据。青龙面板是定时任务面板,作用是定时运行脚本任务,就可以定时去请求数据返回最新的文章,可以推送到QQ,微信,钉钉,Bark等。
为什么有用户中心的推送还需要用青龙面板推送?
青龙面板的可以在Linux系统上,同时我还看的有人把青龙面板刷在路由器,无限WIFI上,或者你有服务器但是不想要多买一台windows服务器的就可以使用青龙面板推送。
需要自己懂任意一个语言(python3、javaScript、shell、typescript),不然会有难度。
用户中心的万能推送是需要依赖Windows浏览器+油猴插件来实现,所以就会比较局限一点点。
本教程只是讲一个大概,具体代码需要自己去实现:筛选过滤,推送功能需要自己去领悟下代码。
1.安装青龙面板,不会安装的需要自己去百度下或者去看下视频。
2.找一个Chatgpt 3.5版本的就可以,不需要4.0版本,然后给GPT发送下面这段话,生成脚本。(我自己懒得写重复造轮子,并且推送起来没有用户中心的万能推送效果好,而且这个推送不需要依赖付费会员)。
我推荐一个我自己使用的Chatgpt FastGo 0.03元/千字,上下文对话也会重新占用Tokens,所以连续对话尽量不要太长,上下无关的问题可以清空对话重新问。我下面使用的是javaScript搞得,也可以问GPT使用py编写。
用青龙面板帮我写一个nodejs脚本:请求网址http://new.xianbao.fun/plus/json/push.json,获取到请求的内容后解析json,然后用js遍历 ,正则检查j遍历的id是否在上一次获取的青龙变量huoqujson里面(使用正则匹配),如果没有的输出json的title和url输出到青龙变量为postdata,遍历完成后推送postdata数据到bark 推送的格式为title+url然后换行\n\n,然后把保存到青龙变量huoqujson里面(用来下次判断数据是否推送过)
//以下是符合要求的Node.js脚本,用于请求指定网址并解析JSON,并将符合条件的数据输出到青龙变量和Bark推送:
// 导入依赖库
const axios = require('axios');
// 读取上一次请求的JSON数据
let huoqujson = $persistentStore.read('huoqujson');
if (!huoqujson) {
huoqujson = '{}';
}
// 发起HTTP请求
axios.get('http://new.xianbao.fun/plus/json/push.json').then(response => {
const data = response.data;
// 解析JSON字符串
const pushData = JSON.parse(data);
// 初始化存储推送信息的数组
const postData = [];
// 遍历推送数据
pushData.forEach(item => {
const id = item.id.toString();
const regex = new RegExp(id, 'g');
// 如果ID没有在上次获取的JSON中出现过,则推送数据
if (!huoqujson.match(regex)) {
postData.push({
title: item.title,
url: item.url
});
}
});
// 如果存在需要推送的数据,则推送到Bark
if (postData.length > 0) {
let pushContent = '';
postData.forEach(item => {
pushContent += item.title + item.url + '\n\n';
});
console.log(pushContent);
$notify('新推送提醒', '', pushContent);
}
// 将本次获取的JSON数据保存为上次获取的JSON
$persistentStore.write(data, 'huoqujson');
}).catch(error => {
console.log(error);
});
//需要注意以下几点:
//需要安装axios库用于发起HTTP请求:npm install axios
//需要使用JSON.parse()函数解析JSON字符串
//需要使用正则表达式判断ID是否在上次获取的JSON中
//需要使用$persistentStore对象读取和写入青龙变量数据
//需要使用$notify函数推送消息到Bark
这样子GPT就写好了bark的推送教程,这个是利用青龙面板配置的bark进行推送,格式是 item.title + item.url + '\n\n' , 可以自己根据自己的需求改下代码。如果需要筛选的还可以在 pushData.forEach 遍历的时候添加一个正则判断 title符合“红包|bug”的才继续 否则跳过。(也可以在第一次下发命令的时候就告诉它 title符合“红包|bug”的才继续,不然跳过)。同样也可以让他筛选分类,就是加这个正则判断语句。
// 匹配title中包含"红包"或"bug"的数据
const titlePattern = /红包|bug/i;
if (!titlePattern.test(item.title)) {
return;
}
// 匹配catename中包含赚客吧"的数据
const catePattern = /赚客吧/i;
if (!catePattern.test(item.catename)) {
return;
}
再来个例子:
用青龙面板帮我写一个nodejs脚本:请求网址http://new.xianbao.fun/plus/json/push.json ,获取到请求的内容后解析json,然后用js遍历 ,正则检查遍历的id是否在上一次获取的青龙变量huoqujson里面(使用正则匹配),如果没有的输出json里面的title和url输出到青龙变量为postdata,其中title使用正则匹配需要满足“红包|bug”,否则跳过这个遍历,遍历完成后推送数据postdata到gocqhttp qq机器人 推送的格式为title+url然后换行\n\n,然后把保存到青龙变量huoqujson里面(用来下次判断数据是否推送过)
const axios = require('axios');
const cheerio = require('cheerio');
(async () => {
// 获取之前脚本保存的huoqujson
let huoqujson = $env.huoqujson;
// 请求数据
const response = await axios.get('http://new.xianbao.fun/plus/json/push.json');
const jsonData = response.data;
// 遍历数据
let postdata = "";
for (let item in jsonData) {
let id = jsonData[item].id;
// 使用正则检查id是否在huoqujson里面
let found = new RegExp(id).test(huoqujson);
if (!found) {
let title = jsonData[item].title;
let url = jsonData[item].url;
if (/红包|bug/.test(title)) { // 使用正则匹配title
// 格式化输出数据,加入到postdata里面
postdata += title + url + "\n\n";
}
// 把id加入到huoqujson里面,保存起来
huoqujson += id + ",";
}
}
// 把postdata保存到青龙变量
$env.postdata = postdata;
// 把新的huoqujson保存到青龙变量
$env.huoqujson = huoqujson;
// 推送postdata到gocqhttp qq机器人
await axios.post('http://127.0.0.1:5700/send_group_msg', {
group_id: "123456789", // 这里填写你的qq群id
message: postdata,
});
})();
在这个脚本中,我们首先用axios库向需要获取的网址(http://new.xianbao.fun/plus/json/push.json)发送了一个HttpGet请求,并把返回的json数据保存到jsonData中。
然后我们用for循环来遍历这个json数据。在遍历过程中,我们首先检查遍历到的id是否在之前保存的huoqujson中,这里我们使用了正则表达式来匹配。如果id在huoqujson里面,说明之前已经处理过了,我们跳过这个id。否则,我们使用正则表达式匹配title,确定是否需要输出这个数据。如果需要输出,我们就把它按照要求格式化输出到postdata里面。
在遍历完所有数据后,我们把postdata保存到青龙变量中,然后把新的huoqujson保存起来。最后我们用axios库向gocqhttp qq机器人发送HttpPost请求,把postdata推送到指定的qq群中。
定时规则是使用cron表达式,不会可以去在线Cron表达式生成器 (qqe2.com) 进行生成。
除了推送实时内容,还可以去请求排行榜数据,每隔半小时推送一次热门排行榜到你的群或者别的地方,需要自己发挥,有一点点技术搞起来是最好的了。
欢迎进群探讨线报酷技术交流群:645555152 ,进群密码需要自己找之前的文章有暗号(每一个微信群聊机器人推送的时候都有一个统一的后缀,需要设置过微信群推送或者在微信机器人推送的教程里面有)。
交流列表
这个设置起来都是一行行代码,并且设置多个重复推送(例如发几个群,每个**不一样的)还是需要懂复制代码的,对小白难一点。