Nana Chat —— QQ Bot 模块
服务器基本的配置已经完成,我们可以使用她来做有趣的事了。
接下来和 Nana 的日常,主要是从“实现项目”这个角度来展开。
所以,我们这次还是祭出我们的传统艺能,QQ Bot.
不过这次要在项目管理方面做好一点,不能再是 if-else 的大杂烩了.
Current Status: 咕了
Dependencies 前期调研
mirai & mirai-api-http
Mirai 是一个在全平台下运行,提供 QQ Android 和 TIM PC 协议支持的高效率机器人框架.
https://github.com/project-mirai/mirai-api-http
下载与设置守护进程
- 安装 Java 运行时
sudo apt install openjdk-11-jre
- 下载 MCL,安装 mirai-api-http
- 登录 Bot(使用 QQ 浏览器验证?使用 QQ 打开链接即可)
- 如果有需要的话可以安装验证码库
设置为自动登录
配置 supervisor
[program:mcl]
command=/home/ftpuser/5050-mcl/mcl-1.2.2/mcl
autostart=true
autorestart=true
user=root
Brainstorming 项目构思
我们可以考虑采用 websocket 这种 adapter,可以同时处理主动发信和消息上报事件.
graph TB subgraph "NanaChat (Daemon)" nCore["NanaChat-Core (Port 5051)"] nPlugin[NanaChat-Plugins] end subgraph "Mirai-api-http (Daemon)" ws["WebSocket Server (Port 5050)"] end wa-->|"收信 [1]"|nCore nCore -->|"主动发信"| ws ws -->|"消息上报"| nCore nCore --> nPlugin nPlugin --> nCore
graph TD; ncore[NanaChat-Core] s[Scheduler
定时事件] d[Dispatcher
消息发送处理] l[Listener
创建 Socket 连接
监听事件] pm[PluginManager
管理插件
协助注册监听器与调度器] ncore --> l ncore --> s ncore --> d ncore --> pm
Docs
Nana-Core
Nana-Plugins
注册 Nana-Core::Listener…
使用 Nana-Core::Dispatcher…