Lagrange.Onebot+NoneBot2开发日志
0. 基本理念 & 前期准备
现在在藤子的管控下个人bot是真难搞。如果直接问GPT还在给你推荐go-cqhttp
,有点不像人类。
本文如标题所言采用Lagrange.Onebot+NoneBot2开发,其中Lagrange是前端,直接对接QQ
api,接收课发送消息;Onebot是一个协议,即该框架下Lagrange提供Onebot协议中要求提供的各种api;NoneBot2是后端,利用前端提供的各种api间接管理QQbot的行为。此外常用的前端还有NapCat,后端还有Koishi等。
PS:
Lagrange.Onebot在文档中提示已经停止更新,但是本文写作时仍在提交contribution,另外NapCat据说风控概率较高,如果熟悉C#的话可以尝试使用追进Lagrange.Core
v2的更新自己开发插件。
需要服务器一台,尽量大内存,对CPU要求不高,推荐Linux环境开发。
1. 部署Lagrange
若是首次使用docker,注意参考文档提供的指令中8081:8081
指的是宿主机8081端口映射到容器的8081端口。容器可以当作一个虚拟机,可以进入容器进行操作,也可以在默认/path-to-data
路径下编辑容器内文件。注意,使用容器后宿主机8081端口被占用,后续不可再使用。
部署完成后,通过docker logs [你的容器名]
查看登陆二维码登录,登陆后应该可以看到bot接收信息。容器名可以通过docker ps
来查看。
2. 部署NoneBot2
注意,Lagrange.Onebot并未适配Onebot v12,选择适配器时注意选择Onebot
v11。
可以选择Console用于调试,在调试完成后可以选择在bot目录下pyproject.toml
中找到Console并删除。
若可以正常使用自带的echo插件即可。
3. 连接Lagrange 和 NoneBot2
- 注意:本节均按照默认配置下的文件目录,若有修改过请自行更改。
主要修改/path-to-data/appsettings.json
和bot目录下的.env
文件。
首先将.env.prod
文件重命名为.env
,若已存在则替换其内容。
主要参数: 1
2HOST=0.0.0.0
PORT=xxxx // 用于连接Lagrange的端口,注意不要与容器端口重复
其次是/path-to-data/appsettings.json
,
主要参数: 1
2
3
4
5
6
7
8
9
10
11"Implementations": [
{
"Type": "ReverseWebSocket",
"Host": "172.17.0.1", // 如果是新建在容器内,此处填写容器的网桥
"Port": xxxx, //上方NoneBot2连接Lagrange的端口
"Suffix": "/onebot/v11/ws",
"ReconnectInterval": 5000,
"HeartBeatInterval": 5000,
"AccessToken": ""
}
]docker network inspect bridge
查询。 #
4. 插件探索 & 自定义 参考NoneBot2文档即可。
其实感觉根本没什么可写的,只是记录了一下自己踩的一些坑,而且现在也还有很多没解决的问题,等什么时候解决了再另写吧。