前言:
群里各种大佬的机器人功能花里胡哨,让我很是眼馋,所以自己也去搞了个酷Q机器人来玩玩。
但是如果用普通的windows版的机器人的话,就得保证电脑24小时不关机才能运行,所以想办法在云服务器上弄了一套Dokcer容器的机器人镜像。
在论坛上,有很多大佬写了各种的插件,但是找了一圈有的插件没有维护,所以可能有些问题。
最后找到了一款神级的插件 -- cqhttp:这款插件通过HTTP或WebSocket对酷Q的时间进行上报以及接受请求来调用酷Q的DLL接口,从而可以使用其他语言来编写酷Q。
然后又找到了大佬基于酷Q写的python异步框架NoneBot,它会对 QQ 机器人收到的消息进行解析和处理,并以插件化的形式,分发给消息所对应的命令处理器和自然语言处理器,来完成具体的功能。
有了这两个,我们就能自己写插件来处理各种接受到的消息了。
参考的网址有如下:
1.https://cqhttp.cc/docs/4.14/#/ --cqhttp插件文档
2.https://nonebot.cqp.moe/guide/ --NoneBot框架文档
安装过程:
一.准备工作
1.Linux服务器
首先我们需要一台linux服务器,这里我用的是免费白嫖半年的阿里云服务器。正常来说我是把安全组的所有端口都打开了,因为反正这个服务器就用来跑这一个东西,也不管其他的了,有些端口我们后面会用到,所以直接省事了。
2.连接工具
这里我使用的finalshell,我觉得还是挺好用的,与windows主机进行文件传输和修改还是挺方便的。
二.Docker的安装
我是Ubuntu系统,所以参考的如下的安装过程:
https://yq.aliyun.com/articles/658984
然后还有其他系统的安装过程:
https://www.runoob.com/docker/ubuntu-docker-install.html
网上教程都挺多的,我这里就留个传送门。
三.Docker镜像coolq/wine-coolq的配置
我们知道,docker只是一个容器,可以理解为我们windows上常用的VMware虚拟机,现在我们容器有了,需要的就是镜像了。
虽然说酷Q官方也已经有了Docker镜像,但是为了省事,还是可以直接用大佬维护的已安装并启用了插件的镜像。
地址:https://cqhttp.cc/docs/4.14/#/
配置文件/root/coolq/app/io.github.richardchien.coolqhttpapi/config/****.ini
[2947034436]
serve_data_files = yes
post_url = http://127.0.0.1:9001
ws_reverse_api_url=ws://127.0.0.1:8080/ws/api/
ws_reverse_event_url= ws://127.0.0.1:8080/ws/event/
use_ws_reverse= true
***.json配置文件
{
"host": "[::]",
"port": 5700,
"use_http": true,
"ws_host": "[::]",
"ws_port": 6700,
"use_ws": yes,
"ws_reverse_url": "",
"ws_reverse_api_url": "",
"ws_reverse_event_url": "",
"ws_reverse_reconnect_interval": 3000,
"ws_reverse_reconnect_on_code_1000": true,
"use_ws_reverse": false,
"post_url": "",
"access_token": "",
"secret": "",
"post_message_format": "string",
"serve_data_files": false,
"update_source": "china",
"update_channel": "stable",
"auto_check_update": false,
"auto_perform_update": false,
"show_log_console": true,
"log_level": "info"
}
运行容器的基本配置在官方文档有:
但是这里是不太完整,下面还有些参数是需要自己加入的,比如如果我用的是pro版本的话,就需要加上额外的COOLQ_URL下载pro版本的。
贴上我的运行配置的文件(有些需要结合文档自己去修改)
sudo docker run -ti --rm --name cqhttp-test \
--network host \
-v $(pwd)/coolq:/home/user/coolq \
-e VNC_PASSWD=****** \
-p 9000:9000 \
-p 5700:5700 \
-e COOLQ_URL=https://dlsec.cqp.me/cqp-tuling \
-e COOLQ_ACCOUNT=QQ号 \
-e CQHTTP_POST_URL=http://127.0.0.1:9001 \
-e CQHTTP_SERVE_DATA_FILES=yes \
richardchien/cqhttp:latest
更多配置使用可以参考文档。
四.NoneBot的安装配置
具体参考文档就行:https://nonebot.cqp.moe/guide/installation.html
安装下载还是很简单的,主要是在python环境里面运行。插件也可以自己跟着文档教程自己写。
五.日常使用事项
首先像我日常使用,主要就是放到一个screen里面去运行。
screen -S cq
在当前会话窗口中按Ctrl a +d快捷键可以实现分离,这时窗口会弹出[detached]的提示,并回到主窗口。
screen -d name #远程detach某个session,前提是已经跳出了name窗口
基本上用到的命令有:
-A 将所有的视窗都调整为目前终端机的大小。
-d <作业名称> 将指定的screen作业离线。
-h <行数> 指定视窗的缓冲区行数。
-m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r <作业名称> 恢复离线的screen作业。
-R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s 指定建立新视窗时,所要执行的shell。
-S <作业名称> 指定screen作业的名称。
-v 显示版本信息。
-x 恢复之前离线的screen作业。
-ls 显示目前所有的screen作业。
-wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业。
screen -S yourname -> 新建一个叫yourname的session
screen -ls -> 列出当前所有的session
screen -r yourname -> 回到yourname这个session
screen -d yourname -> 远程detach某个session
screen -d -r yourname -> 结束当前session并回到yourname这个session
一般是先创建一个新的screen,然后运行sudo docker run -ti --rm --name cqhttp-test \(上面容器的这段话)
最后才是运行python3 bot.py。
这样就能保证机器人24小时的运行啦。