搭建kimo寄佬的AtriBot

搭建kimo寄佬的AtriBot
葱苓Ciraos搭建自己的QQ机器人,让它帮你管理群、发送消息,查资料,陪你逗逼,等等。
我使用的是go-cqhttp
+ atri
!!
在linux上部署
前提准备:
- 一个服务器,或者一台电脑(我的打算是部署在服务器上,腾讯云的1h2g,ubuntu轻量云服务器)。
- python>=3.8 的运行环境。
- 耐心 。
- 一台电脑。
配置go-cqhttp
使用mirai以及MiraiGo
开发的cqhttp golang
原生实现, 并在cqhttp原版的基础上做了部分修改和拓展。
新版本的nonebot的协议适配已经将cqhttp
改为onebot v11
。但是cqhttp的配置不受影响。
前往go-cqhttp release下载cqhttp对应的linux服务端go-cqhttp_linux_amd64.tar.gz
文件。
进入服务器,新建一个cqhttp
文件夹:
1 | cd ~ |
之后把这个文件夹上传上去,这里我推荐国产的finalshell。然后解压该文件:
1 | tar -xvzf go-cqhttp_linux_amd64.tar.gz |
解压完成以后应该是这些文件:
运行./go-cqhttp
,等待出现以下,并选择3: 反向 Websocket 通信
,因为我们用的是atri
,需要用到反向 websocket 通信
,按下数字键3
,完成选择:
此时,按下ctrl+c
结束进程,然后修改config.yml
,
1 | # go-cqhttp 默认配置文件 |
_config.yml
设置好之后,继续运行./go-cqhttp
:
- 会出现两种情况:
- 你没设置密码。运行
go-cqhttp
后会出现二维码,手机端qq扫码即可。 - 你设置了密码。1. 可能会成功登录;2. 登录不了:建议下载一个windows版的cq,运行gocq之后,会在本地生成
device.json
、session.token
,复制进服务器gocq
文件夹后,再运行./go-cqhhtp
,此时,如果没有意外情况,可以使用./go-cqhttp faststart
设置快速启动。
- 你没设置密码。运行
虽然会出现黄色字段,但是不用管,等最后设置好nonebot后,就可以连通了:
1 | [2022-01-09 01:03:23] [WARNING]: 连接到反向WebSocket Universal服务器 universal: ws://127.0.0.1:8080/onebot/v11/ws 时出现错误: dial tcp: lookup your_websocket_universal.server on 127.0.0.53:53: no such host |
按下ctrl+c
结束进程,并输入 cd ~
返回home
文件夹。
到这,你的cqhttp
就配置成功了!
配置atri
传送门:atri。
高性能文爱萝卜子,糅杂了各类有趣小功能。
从Github库下载好ATRI-main.zip
压缩包,或者通过git clone
来拉取(建议的方法,因为在不修改源码的前提下,可以随时保持更新),
如果显示zip: command not found.
,就需要下载zip功能,命令行敲出sudo apt install zip
即可安装。
放进你的服务器目录中,然后通过unzip ATRI-main.zip
命令解压此压缩包,
我建议把ATRI-main
文件夹名称改为atri
,以方便后期的调试,
再通过cd atri
进入文件夹,并输入以下命令安装atri所需的依赖:
1 | python -m pip install --upgrade pip # 升级pip至最新版本 |
安装完依赖之后,再修改下文件夹中的config.yml
文件,这里我们只做最初的改动:
记得将InlineGoCQHTTP
的enable
改为false
。我们暂时采用GO-CQHttp
、atri
分开运行的方式。
1 | BotSelfConfig: |
修改好之后,就可以通过以下命令来启动atri啦!
1 | python main.py |
screen 让你的机器人跑起来
安装screen
模块:
Ubuntu可以使用screen -v
查看是否安装screen
,如果没有安装。,则通过如下命令安装screen
:
1 | sudo apt update |
screen简单命令
创建一个screen
例如:screen -S [name]
:
1 | screen -S cqhttp |
这样,你就创建好了一个screen,现在按住ctrl a+d
来退出,如果你还想查看的话,也可以通过screen -r cqhttp
来查看。
查看当前运行中的screen
例如:screen -ls
1 | ubuntu@VM-16-11-ubuntu:~$ screen -ls |
注意上述命令中的数字2183677.cqhttp
,它非常有用,我们可以通过screen -r 2183677
的方式来重新加入,也可以通过screen -r cqhttp
来进入screen。
销毁一个screen
例如:screen -X -S [name] quit
。按上文所述,我们查到cqhttp的数字为2183677
,当然也直接可以输入screen的名称来杀死这个screen:
1 | screen -X -S 2183677 quit |
或者
1 | screen -X -S cqhttp quit |
将atri和cqhttp连通
大体思路:在cqhttp的文件夹内创建一个screen
用来运行cqhttp
,然后退出当前screen,cd
到atri文件夹,仍按照上述步骤操作,这样,cqhttp才能和atri连通。
1 | cd cqhttp |
此时,我们已经开启了cqhttp的screen窗口,这时,我们就可以先通过./go-cqhttp faststart
让cqhttp
运行起来,然后通过ctrl a+d
退出当前screen。再然后,进入到atri文件夹内。
1 | cd ~ |
同样的,atri窗口已经开启,通过python main.py
让atri运行,然后ctrl a+d
退出。
此时,我们再screen -r cqhttp
返回cq的screen,发现已经连接上atri辣!
我们对机器人发一个/ping
,机器人便会回复,
OK! 那么,你有没有成功呢?
问题汇总
风控
丢包率较高
最近遇到的问题
- sbtx