优秀的编程知识分享平台

网站首页 > 技术文章 正文

基于python,go-cqhttp,nonebot搭建QQ机器人(一)

nanyue 2024-09-01 00:02:10 技术文章 6 ℃

之所以想做这么个玩意,是因为跑团的时候经常被骰娘背刺,许多人觉得是骰娘有问题。因此想搞一个自主研发的骰娘,从根源上保证公平公正……顺便熟悉服务器的使用,为科研项目的服务器管理做准备。(大学生一枚)

由于技术水平的限制和时间关系,这个东西的主要开发工作将主要在暑假期间进行,在这里先起个头,测试一下框架的使用。

一、服务器选择

这样的一个服务器,需要的主要是能够24小时提供服务的效果,在配置方面的要求并不是很高。因此,可以说是价钱越低越好的,不过另一方面也要保证服务器提供方不会随时跑路,不然还是挺麻烦的。对此,最好的办法是在其网站下找备案号,如果是没有备案号的网站那使用起来就要小心了[骷髅]

这边的选择是“三丰云”,它提供理论上可以永久免费的云服务器(但是实际上需要发贴来延期,不然我也不会分享欲这么强),免费的云服务器配置为 1核CPU,1G内存,10G硬盘,完美契合我们的需求。

接下来,进行服务器的基础配置。首先,按照自己的需求和服务器提供商提供的方法来配置操作系统。三丰云这里是在管理面板下设置操作系统,大部分服务器提供商应该都是类似的策略。


在这里我选择的是Ubuntu,建议不要用Windows系统,因为低配置的服务器用Windows系统可能影响性能。宝塔面板也是个不错的选择,不过这里还是以Ubuntu为例介绍。

进行完基本的设置之后,就可以用公网IP连接到服务器了,这里使用的是Xshell和Xftp。



再然后,可以配置一下python环境。

这里使用的是miniconda,可以在GitHub上下载miniconda安装包上传到服务器上安装。

miniconda下载地址:GitHub - conda-forge/miniforge: A conda-forge distribution.

可以在csdn上找关于conda的使用教程。

首先创建一个python环境

conda create -n python python=3.10.2

创建完成后,进入环境

conda activate python

这样就完成了服务器python环境的配置。

二、go-cqhttp配置

参考文献:「链接」「链接」

首先我们安装go-cqhttp

地址:「链接」




传到服务器上,然后

tar -xzvf go-cqhttp_linux_adm64.tar.gz

解压文件,cqhttp就安装好了

接下来,运行

./go-cqhttp

选择3:反向 Websocket 通信

接下来会生成一个config.yml配置文件,打开配置文件,改一下qq号,密码建议先留空,因为密码登录可能需要安全验证,推荐先使用扫描二维码登录。

拉到最下面,有一个

sever:

-ws-reverse:

把universal:后面的链接改为 ws://127.0.0.1:8088/onebot/v11/ws/

因为这里是用onebotv11进行测试,之后可能还会修改。

接下来,再次运行./go-cqhttp

这一次还是会报错,然后生成一个device.json文件

device.json里面的"protocol":6 改成 "protocol":2

再一次运行./go-cqhttp

一般来说,这个时候就会出现二维码,扫描二维码登录成功之后,这一步就算是完成了。后面会一直报错无法连接什么玩意,这是正常的情况,因为这是我们下一步要配置的。

三、配置nonebot

首先,在服务器中进入之前配置的python环境。

接下来使用pip安装必要库,可以先给pip设置清华源

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

pip config set global.trusted-host https://pypi.tuna.tsinghua.edu.cn

接下来安装

pip install nb-cli pydantic loguru pygtrie httpx python-dotenv uvicorn fastapi requests selenium aiocqhttp ffmpeg aiohttp

pip install nonebot2 nonebot-plugin-apscheduler nonebot-adapter-cqhttp

安装完成后,开始配置项目

这里的策略是利用nb-cli进行创建

nb create



选择bootstrap,回车键确认

输入一个项目名称

选择OneBotV11适配器(按空格选择,回车确认)


选取FastAPI驱动器和HTTPX驱动器


立即安装依赖,不创建虚拟环境


插件选择echo

接下来 cd 项目名 之后

nb run

不出意外的话,应该会成功运行

接下来,再开一个终端窗口,再一次运行./go-cqhttp就会发现成功连接了。

对你设置的QQ发送信息 /echo 任意文本


如果能这样,那就是成功了

不过到目前为止,如果想让机器人持续运行,你只能一直开着终端,那样的话服务器就没有意义了。

Ctrl+C终止上面的进程,然后使用以下指令

nohup nb run >nb.log &

nohup ./go-cphttp > go.log &

这样就可以保持后台运行。

需要关掉的时候

ps -ef


找到这个玩意

kill -9 进程PID

做完以上这些,我们大概成功的搞明白了这个框架的使用方法?大概?

之后还需要更多的配置来让我们实现跑团骰娘的功能,这个就大概等暑假之类的更新。

Tags:

最近发表
标签列表