QQ机器人搭建 III - cq-picsearcher-bot框架搭建
1. nodejs环境安装
因为在使用过程中发现ZeroBot-Plugin的涩图功能不是很涩,狗群友一天不涩涩浑身难受,原来是我啊,那没事了,于是在这基础上继续搭建 cq-picsearcher-bot 机器人,同时使用两个机器人。
cq-picsearcher-bot是使用nodejs编写的,于是我们搭建nodejs环境。打开 Node.js官网 找到LTS版本并点击 "Other Downloads",该项目暂不支持17及以上版本,也不要使用Linux官方维护的版本(版本过低)

右键Linux Binaries版本,复制链接。回到shell后将其下载回来并解压,命令全程在root用户下操作,具体见搭建教程第一部分
wget -P /home https://nodejs.org/dist/v16.15.0/node-v16.15.0-linux-x64.tar.xz
xz -d node-v16.15.0-linux-x64.tar.xz
tar -xvf node-v16.15.0-linux-x64.tar
mv node-v16.15.0-linux-x64 /usr/local/nodejs
rm node-v16.15.0-linux-x64.tar
同Go语言环境一样,将其添加到环境变量,打开profile文件
vi /etc/profile
在最后一行添加
# Nodejs
export NODEJS=/usr/local/nodejs
export PATH=$PATH:$NODEJS/bin
最后source一下
source /etc/profile
至此Nodejs环境安装成功,可以用node -v和npm -v检查下

2. SauceNAO API获取
由于非注册账户对于搜图次数有限制,虽然注册账户也有,不过每天有100次。什么?每天100次还不够用?您节制一次都不用是吧
打开 SauceNAO ,点击Account并注册

注册登录好后进入api页面,复制自己的api key,之后会用到。后面regen是重新生成key,不要点

3. cq-picsearcher-bot 安装
cq-picsearcher-bot 主要用来搜图、搜本子和按tag搜涩图,我们将项目clone回本地
cd /home
git clone https://github.com/Tsuk1ko/cq-picsearcher-bot.git
将默认配置文件copy一份并更名,原配置文件只提供配置模板,本身并不生效
cd /cq-picsearcher-bot
cp config.default.jsonc config.jsonc
然后安装依赖
npm i -g yarn
yarn
安装成功后对配置文件进行更改
vi config.jsonc
下面是配置文件需要更改的地方,群友没事就搁那复读,那就复吧,涩图功能只展示部分
// momocow/node-cq-websocket 配置,请参考 https://yww.uy/5gGAq9
"cqws": {
"host": "127.0.0.1",
"port": 6800, // 默认配置为6700,因为6700端口被zerobot占用,于是改用6800
"enableAPI": true,
"enableEvent": true,
"accessToken": "",
"reconnection": true,
"reconnectionAttempts": 10,
"reconnectionDelay": 5000
},
// 复读相关功能
"repeat": {
// 是否启用
"enable": true,
// 当检测到某个群有这么多次相同发言后会概率参与复读
"times": 3,
// 复读概率(百分比 0~100)
"probability": 100, // 上调概率
// 平时直接复读的概率(百分比 0~100)
"commonProb": 0.5 // 上调概率
},
// setu 相关功能,部分配置的详细说明请查看“wiki-附加功能-setu”以了解更多
"setu": {
// 是否启用
"enable": true, // 改为true启用
// 反和谐方式(0:关闭,1:轻微修改,2:旋转)
"antiShielding": 1, // 轻微修改
},
// 正则表达式相关设置
"regs": {
// 开启搜图模式
"searchModeOn": "^搜[图圖]$", // 将名字去掉了,以免与zerobot聊天功能撞车,搜图触发关键字变为'搜[图片]'
// 关闭搜图模式
"searchModeOff": "^[谢謝]+絵守$", // 更改为自己的机器人名字
// setu
"setu": "^.*[来來发發给給][张張个個幅点點份]?(?<r18>[Rr]18的?)?(?<keyword>.*?)?的?[色瑟][图圖]|^--setu$" // 去掉了名字以免撞车,触发变为'来张[tag]涩图'
},
// saucenao APIKEY,必填,否则无法使用 saucenao 搜图
"saucenaoApiKey": "自己的api key",
随机图功能的触发语句“来张[tag]色图”会与zerobot冲突,在zerobot的功能列表中禁用imgfinder即可
4. 更改go-cqhttp设置
还记得将端口更改为了6800吗?我们需要在go-cqhttp的配置里再匹配下,打开其配置文件
vi /home/go-cqhttp/config.yml
在正向WS设置下再加一个ws服务,于是配置文件变为了这样
# 正向WS设置
- ws:
# 正向WS服务器监听地址
host: 127.0.0.1
# 正向WS服务器监听端口
port: 6700
middlewares:
<<: *default # 引用默认中间件
- ws:
# 正向WS服务器监听地址
host: 127.0.0.1
# 正向WS服务器监听端口
port: 6800
middlewares:
<<: *default # 引用默认中间件
进入后台,ctrl+c杀掉程序再重启次,报错"找不到地址"是正常的,6800端口的机器人还没跑起来呢
5. 运行程序
进入程序目录,使用npm run test测试程序没问题后,新建一个tmux后台,并在后台运行此程序
tmux new -s picsearcher
# 运行
npm start
# 停止
npm stop
# 重启
npm restart
# 查看日志(平时日志也会保存在 logs 文件夹内)
npm run log
# 停止 pm2 进程
npm run kill
至此涩图搜图机器人已正常运行

了吗?

浙公网安备 33010602011771号