前段时间接触了QQ机器人,所以呢我用sillyGirl对接one-bot协议搭建了我的QQ机器人(下次展示)。青龙面板可以定时运行脚本。
今天我有一个想法:青龙面板运行ocr文字识别的js,通过QQ传入图片的url,再将运行日志发送到QQ。

在sillyGirl对接青龙面板后可以直接发送以下命令完成一些操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 对接青龙
青龙管理 #多容器青龙配置
ql spy #自定义监听变量运行青龙指定脚本功能
# 使用命令
ql config #获取青龙config.sh设置的内容,但我没测试出来结果,等猫咪大佬解惑
ql envs #获取青龙config.sh内设置的所有环境变量内容,但我没测试出来结果,等猫咪大佬解惑
ql env get ? #获取青龙config.sh内指定环境变量的内容,仅精确匹配
ql env find ? #查找青龙config.sh内指定的环境变量内容,支持模糊匹配
ql env set ? ? #在青龙config.sh内设置环境变量
ql env remark ? ? #字面意思是给环境变量设置备注,但我没测试出来结果,等猫咪大佬解惑
ql env disable ? #禁用(注释)在青龙config.sh内设置的环境变量
ql env enable ? #启用(取消注释)在青龙config.sh内设置的环境变量
ql raw ? #下载raw链接的js
ql task ? #在青龙里面运行指定的js
ql repo ? #在青龙里面拉库,例:ql repo https://github.com/cdle/carry.git
ql cookie status #查询青龙里cookie状态
ql crons #获取青龙所有定时任务,但我没测试出来结果,等猫咪大佬解惑
ql cron status ? #查看青龙指定定时任务的状态
ql cron run ? #运行青龙定时任务,支持模糊匹配
ql cron stop ? #停止运行青龙定时任务,支持模糊匹配
ql cron enable ? #启用青龙定时任务,支持模糊匹配
ql cron disable ? #禁用青龙定时任务,支持模糊匹配
ql cron find ? #查找青龙定时任务,支持模糊匹配
ql cron logs ? #查找青龙定时任务运行日志,支持模糊匹配
ql cron hide duplicate #隐藏青龙重复定时任务
set qinglong autoCronHideDuplicate false #关闭自动隐藏任务命令

这里发现

    ql cron run ? #运行青龙定时任务,支持模糊匹配
    ql cron logs ? #查找青龙定时任务运行日志,支持模糊匹配

这两条命令可以完成运行和查看日志
此外ql env set ? ? 可以向面板传递变量

而在sillyGirl的函数中

    breakIn(str)//生成一个新的消息向下传递,可以被所有命令处理(包括当前js,所以需要防止递归)

这个可以自动生成一条信息传递,这也就模拟了用户发送命令。


综上,可以通过获取用户发送的图片url(qq的图片都会带有一个链接,可以通过机器人获取),使用breakIn函数将url传递到面板上,再运行和获取日志,即可达到目的

如下是我在sillyGirl中的js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// [rule:  转文字]
sendText("请在30秒内发送图片!")
tu = input(30000)
if(!tu){
sendText("已退出!")
}else if (tu == "退出"){
sendText("已退出!")
}else{
imurl = tu.match(/url=(.*?)\]/g)[0].replace(/url=/g,"").replace(/\]/g,"")
breakIn('ql env set imurl '+imurl)
sleep(1000)
breakIn('ql cron run 转文字')
sleep(4000)
breakIn('ql cron logs 转文字')
}

在青龙面板的js中:

1
imurl = process.env.imurl;

可获取刚刚传入的变量

因为我使用的是腾讯云的ocr识别api,所以源文件中含有我的密钥,所以就不做展示了。
测试图
8E53EBB634C7C92542DA4FDA998F0547.jpg