Skip to content
This repository has been archived by the owner on Sep 17, 2024. It is now read-only.

Latest commit

 

History

History
170 lines (110 loc) · 7.79 KB

README.md

File metadata and controls

170 lines (110 loc) · 7.79 KB

由于架构内部几乎没有可扩展性,该项目已被弃用!


GitHub License GitHub repo size GitHub package.json version (branch)
GitHub last commit (branch) GitHub issues GitHub pull requests GitHub contributors
OpenShamrock Kritor OneBotV11 OneBotV12

Momoon Bot

★ 基于 Node.js 并对接 OpenShamrock 客户端的 Bot 后端实现 ☆

简介

Momoon Bot 是一个使用 TypeScript(JavaScript)编写的跨平台、可被拓展、自由灵活的 QQ 聊天机器人框架,Node.js 事件驱动贯穿其本身。

功能

Momoon Bot 尚处于开发阶段,已经基本可用。

兼容协议

Momoon Bot 目前兼容以下协议:

计划支持以下协议:

连接方式

  • HTTP 通信
  • 主动 WebSocket
  • 被动 WebSocket

关于消息 CQ 码

因为发送带有 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目录中。

脚手架(CLI)

Momoon Bot 目前正在计划增加 Molunar CLI,作为脚手架。

使用模块

  • axios - 主要用于支持 HTTP 通信。
  • ws - 主要用于支持主动 WebSocket 与被动 WebSocket 通信。

许可证

AGPL v3.0