前言

此文小白向

我看见群里的 鱼鱼鱼 ,非常心动,自己也照着论坛内的文章照着弄,结果遇到许多问题,后来一一解决了,成功拥有属于我自己的“兔叽”!

在此

感谢 @Sid Vicious 大佬在论坛的文章

感谢 @Gray.Ad 大佬愿意花时间帮我分析问题

材料

  • docker
  • cool-q
  • python2
  • QQ_bot.rar (170.0KB)
  • virtualenv

QQ_bot.rar(嘤嘤_机器人) 由 @ 大佬提供

安装所需程序

安装 python2python-pip

sudo apt install python2 python-pip

安装 virtualenv

sudo pip install virtualenv

正式开始

0x01 解压压缩包

在你喜欢的地方解压 QQ_bot.rar (我喜欢在 ~/ 目录)

unrar x QQ_bot.rar

0x02 创建所需虚拟环境

作用是防止各个程序之间所需库的冲突

进入文件夹,创建文件夹

cd QQ_bot/
mkdir QQ_bot_env

虚拟化环境

cd QQ_bot_env/
virtualenv QQ_bot_env

提示:三个常用的 virtualenv 命令(可保存为 readme 方便查看)

# virtualenv常用命令

# 创建
virtualenv QQ_bot_env

# 激活
source bin/activate

# 退出
deactivate

0x03 安装所需库

安装所需库

pip install -r ../requirements.txt

(注意根据需要更新pip和安装提到的其他所必须的库)

0x04 安装集成好的docker

以下可参考 coolq-http-api 的官网文档:https://cqhttp.cc/docs/4.5/#/Docker

安装 docker

sudo wget -qO- https://get.docker.io|sh

下载集成好的 docker

sudo docker pull richardchien/cqhttp:latest

0x05 启动容器

创建用于储存酷Q程序文件的文件夹

mkdir ~/coolq/

启动容器

# 先看清楚,不要无脑复制命令

# docker部署coolq,所有操作都要sudo权限

sudo docker run -ti --rm --name cqhttp-test -v ~/coolq:/home/user/coolq -e VNC_PASSWD=12345678 -p 9000:9000 -p 127.0.0.1:5700:5700 -e COOLQ_ACCOUNT=212521306 -e CQHTTP_POST_URL=http://127.0.0.1:8080/ -e CQHTTP_SERVE_DATA_FILES=no richardchien/cqhttp:latest

# 参数说明
-v ~/coolq:/home/user/coolq \  # 将宿主目录挂载到容器内用于持久化酷Q的程序文件

-p 9000:9000 \  # noVNC端口(这端口意思类似只开放一个端口,如果改为8999:9001,估计是占用8999,9000,9001都可以访问登陆酷Q的控制面板了吧),用于从浏览器登陆服务器,控制酷Q(当然你也可以搞为其他端口,类似7788:7788,这就你从服务器登陆控制面板就是 服务器ip:7788)

-p 5700:5700 \  # HTTP API 插件开放的端口(用于监听QQ群消息,端口都可以随意设置)

-e COOLQ_ACCOUNT=212521306 \ # 要登录的 QQ 账号,可选但建议填

-e CQHTTP_POST_URL=http://127.0.0.1:8080/ \  # 相当于request api,把群里的信息上报(访问)到地址,如果提示端口占用,那么就相应得修改此参数的端口值

-e CQHTTP_SERVE_DATA_FILES=no \  # 不允许通过 HTTP 接口访问酷 Q 数据文件

相关注意事项

  • 嘤嘤机器人的flask后台,用于监听qq数据的api接口是http://127.0.0.1:8080/msg
  • 详见代码的131行
  • 所以你启动docker的时候CQHTTP_POST_URL要改为(或者docker启动后再修改coolq/app/io.github.richardchien.coolqhttpapi/config里面的ini文件或json文件)
  • CQHTTP_POST_URL=http://127.0.0.1:8080/msg
  • 如有需要长期在后台运行docker,可把 --rm 换成 -d

0x06 配置 config 配置文件

大佬的相关config配置文件

*.ini 前面是 你自己 的qq号码,它将会在你第一次运行 docker run 后出现在 ~/coolq/app/io.xxxxxx/config/ 里面

212521306.ini

[212521306]
host=0.0.0.0
port=5700
use_http=yes
post_url=http://内网ip:8080/msg
post_message_format=string

注意!尽量看清楚了跟着教程来,不要添加自己的想法 ( /捂脸 我就是吃了这个的亏 )

内网IP 根据情况填 192.168.x.x ,没有的话就填外网ip,不是填 127.0.0.1

( 我就是自己多想,填了 127.0.0.1:8080/msg ,导致一直消息无法上报,浪费了好几天 )

212521306.json

{
    "host": "0.0.0.0",
    "port": 5700,
    "use_http": true,
    "ws_host": "0.0.0.0",
    "ws_port": 6700,
    "use_ws": false,
    "post_url": "http://127.0.0.1:8080/msg",
    "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": "github",
    "update_channel": "stable",
    "auto_check_update": false,
    "auto_perform_update": false,
    "show_log_console": false,
    "log_level": "info"
}

0x07 flask相关配置

填好你的机器人QQ号
atMe = '[CQ:at,qq=xxxxxx]' # 18行

配置flask端口,端口是你docker启动后CQHTTP_POST_URL的端口
CQHTTP_POST_URL配置的端口不是占用此端口,而是数据请求此端口

比如我docker配置的CQHTTP_POST_URL端口是8080,那么我flask的启动端口就是8080

http = WSGIServer(('', 8080), app) # 308行

0x08 gevent启动flask

直接启动

python webhook.py

0x09 根据需要修改代码

根据自己的需求修改 webhook.py

以此打造属于自己的QQ机器人

后记

参考链接:

如有更优方法或何处出现错误,可在下方留言告知~

分类: 笔记

发表评论

电子邮件地址不会被公开。 必填项已用*标注