在Linux云服务上运行酷Q机器人并DIY自己的功能

前言:

群里各种大佬的机器人功能花里胡哨,让我很是眼馋,所以自己也去搞了个酷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小时的运行啦。

posted @ 2020-03-26 17:46  wushuyng  阅读(2349)  评论(0编辑  收藏  举报