★ 基于 Node.js 并对接 OpenShamrock 客户端的 Bot 后端实现 ☆
Momoon Bot 是一个使用 TypeScript(JavaScript)编写的跨平台、可被拓展、自由灵活的 QQ 聊天机器人框架,Node.js 事件驱动贯穿其本身。
Momoon Bot 尚处于开发阶段,已经基本可用。
Momoon Bot 目前兼容以下协议:
- OneBot/v12(OpenShamrock 客户端) - 所有的 API 均根据 OpenShamrock 文档进行编写。
计划支持以下协议:
- HTTP 通信
- 主动 WebSocket
- 被动 WebSocket
因为发送带有 CQ 码消息的操作,实在过于原始。
因此,CQ 码相关的操作将不会被添加,包括解析 CQ 码与生成 CQ 码。本项目在解析上报的消息时,仅通过消息段解析。
提示:虽然 OpenShamrock 本身支持发送带有 CQ 码的消息,但为了代码可读性,请务必不要使用任何 CQ 码。
关于 OpenShamrock 的提示:OpenShamrock 计划在其升级至 1.1.0 以上版本后,弃用 OneBot 协议,而改用 Kritor 协议,彼时亦将停止 CQ 码支持。Momoon Bot 将保留 OneBot 协议支持,并使其更加通用(即支持任何使用 OneBot 协议的 11 与 12 版本的客户端)。
正在制作频道相关功能。
此处会展示该项目包含的插件,其类名将被置于括号内,并会在其后标识它所使用的库。
注意:内置插件(BuiltInPlugin
)不应该被删除,它被用于注册回显(echo
)命令,以及其它内置命令,且被用于处理客户端上报事件的日志输出。
该项目内置以下插件:
- 内置插件(
BuiltInPlugin
) - 调试器(
Debugger
)
该项目内置以下示例插件:
- 今日数字(
TodayNumber
) - 最简单的示例插件,在用户输入命令后,将输出发送者在近 24 小时内所得到的随机数字。与“今日人品”差不多。 - 防撤回(
AntiRecalling
) - 用于重新发出群聊中被撤回的消息。 - 随机动漫图片(
RandomAnimePicture
) ⇐axios
- 通过调用公布在网络上的随机图片 API,获取动漫图片。 - 哔哩哔哩视频详情获取(
BilibiliVideoDetails
) ⇐axios
- 在用户发送带有哔哩哔哩视频链接、哔哩哔哩短链接或哔哩哔哩视频分享卡片消息等消息时,将调用哔哩哔哩 API 获取视频详细信息。
在不久的未来,将会在该仓库的维基上发布插件开发教程。
请确保设备上已经安装 Node.js,若尚未安装,需要进入官方网站,下载 Node.js 16.0 以上的版本。
可以通过从发布页面中下载稳定版本的代码,亦可克隆仓库源代码,并进行编译。
下载完成后,解压压缩包,输入以下命令启动:
node .
它将在运行目录中,创建文件名为config.json
的配置文件。完成配置后,重新运行命令即可启动。
更多信息见使用。
若想要编译源代码,请首先克隆该仓库:
git clone https://github.com/MoRanYue/MomoonBot.git
cd MomoonBot
若正在使用 NPM:
npm run build
若正在使用 Yarn:
yarn build
编译完成后,编译的结果将被放置于<Momoon Bot 源代码>/dist
目录中。
Momoon Bot 目前正在计划增加 Molunar CLI
,作为脚手架。
- axios - 主要用于支持 HTTP 通信。
- ws - 主要用于支持主动 WebSocket 与被动 WebSocket 通信。