python环境-基于go-cqhttp-简易qq聊天机器人

目录

一、准备

1.python环境

2.go-cqhttp插件

二、配置

1.go-cqhttp配置

3.使用 sanic 来启动 Websocket 服务

三、启动

1.win端

四、linux服务器配置

1.需要多下载一个go-cqhttp文件一起打包上传

2.修改之前的配置文件config.yml 

3.我的.py无法获取连接 所以我更改了最后一行代码

4.docker部署准备

5.构建部署docker


一、准备

1.python环境

2.go-cqhttp插件

go-cqhttp文件

二、配置

1.go-cqhttp配置

(1)解压go-cqhttp

win端解压后,直接打开go-cqhttp_windows_amd64.exe 点击确认三次

会生成 go-cqhttp.bat 文件,运行。

(2)选择 3: 反向WebSocket通信

然后关闭 cmd 窗口,可以看到会生成配置文件config.yml 

(3)修改配置文件config.yml 

1.需要修改第4行

uin: <QQ号> # QQ账号

2.第98行,Websocket 连接地址。

universal: ws://127.0.0.1:<端口号>/qqbot/ #如果不冲突就填8080

(4)修改device.json

修改device.json文件中protocol 的数字为2(含义为- 手表 -其他的可能无法登陆)

3.使用 sanic 来启动 Websocket 服务

先创建一个要执行的脚本,如 server.py (复制粘贴请更改配置)

import json
from sanic import Sanic

app = Sanic('qqbot')
base_path = "/<自定义回复的txt文件路径>"


@app.websocket('/qqbot')
async def qqbot(request, ws):
    """QQ机器人"""
    while True:
        data = await ws.recv()
        data = json.loads(data)
        print(json.dumps(data, indent=4, ensure_ascii=False))
        # if 判断是群消息且文本消息不为空
        if data.get('message_type') == 'group' and data.get('raw_message'):
            raw_message = data['raw_message']
            if raw_message == "/菜单":
                with open(base_path + "菜单.txt", encoding="utf8") as f:
                    msg = f.read()
                ret = {
                        'action': 'send_group_msg',
                        'params': {
                            'group_id': data['group_id'],
                            'message': msg,
                        }
                    }
                await ws.send(json.dumps(ret))
            elif raw_message == "/群主介绍":
                with open(base_path + "群主介绍.txt", encoding="utf8") as f:
                    msg = f.read()
                ret = {
                        'action': 'send_group_msg',
                        'params': {
                            'group_id': data['group_id'],
                            'message': msg,
                        }
                    }
                await ws.send(json.dumps(ret))
            elif raw_message == "/群主主页":
                with open(base_path + "群主主页.txt", encoding="utf8") as f:
                    msg = f.read()
                ret = {
                        'action': 'send_group_msg',
                        'params': {
                            'group_id': data['group_id'],
                            'message': msg,
                        }
                    }
                await ws.send(json.dumps(ret))
            elif raw_message == "/Python学习目录":
                with open(base_path + "Python学习目录.txt", encoding="utf8") as f:
                    msg = f.read()
                ret = {
                        'action': 'send_group_msg',
                        'params': {
                            'group_id': data['group_id'],
                            'message': msg,
                        }
                    }
                await ws.send(json.dumps(ret))
            elif raw_message == "/开发项目":
                with open(base_path + "开发项目.txt", encoding="utf8") as f:
                    msg = f.read()
                ret = {
                    'action': 'send_group_msg',
                    'params': {
                        'group_id': data['group_id'],
                        'message': msg,
                    }
                }
                await ws.send(json.dumps(ret))


if __name__ == '__main__':
    app.run(debug=True,port=<上面写的端口>,auto_reload=True)

三、启动

1.win端

运行 go-cqhttp.bat 文件,根据提示扫码登录。

四、linux服务器配置

1.需要多下载一个go-cqhttp文件一起打包上传

 

2.修改之前的配置文件config.yml 

universal: ws://<服务器地址>:<端口号>/qqbot/ #如果不冲突就填8080

3.我的.py无法获取连接 所以我更改了最后一行代码

if __name__ == '__main__':
    app.run(host='0.0.0.0',debug=True,port=<你的端口>,auto_reload=True)

4.docker部署准备

两个文件当前目录配置Dockerfile

(1).go-cqhttp

#基于的基础镜像
FROM alpine:latest
#维护镜像的用户信息
LABEL maintainer="cc 1525349212@qq.com"
COPY . /workspace
WORKDIR /workspace
#启动执行脚本
CMD ["./go-cqhttp"]

(2).qqbotserver

 

#基于的基础镜像
FROM python:3.9

# 维护者信息
LABEL maintainer="cc 1525349212@qq.com"

ADD ./ /code 

#设置code文件夹是工作目录
WORKDIR /code

RUN pip install --default-timeout=1000 -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ 


CMD ["python", "/code/qqbotserver.py"]

编写py所需文件列表<简单版 详细请百度py部署linux>

新建编写txt文件requirements.txt放入qqbotserver的文件夹

requests==2.28.2
sanic==23.3.0

5.构建部署docker

1.构建

docker build -t <设置docker镜像名>  .

2.部署运行

(1).qqbotserver:

docker run -d -p <端口号>:<端口号> --name <设置实例名>  <刚才的镜像名>

(2).go-cqhttp:

docker run -d  --name <设置实例名>  <刚才的镜像名>

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值