妖帝q群机器人_Koishi.js - QQ 机器人的新选择

116d7b8da214617befc435019a6aa5b1.png

2019 年八月的一天,我闲着无聊敲下我编写的机器人“四季酱”的第一行代码。至今,在 QQ 机器人这条路上,我已经前后写下了两万多行代码了。随着机器人的功能越来越强大,我逐渐产生了将其开源的念头。于是,经过了几个月的努力,一个基于 CoolQ 和 CQHTTP 的 QQ 机器人框架 Koishi.js 就这样诞生了。

Koishi 这个名字来源于东方 Project 中的角色古明地恋(Komeiji Koishi),而图标也是以这个角色为原型设计的。直接用 Koishi 作为机器人框架的名字,心里还是挺紧张的~

b92b6ac541641783ef28909f817ab786.png
怎么样,是不是超级可爱?

开箱即用的 CLI

Koishi 拥有开箱即用的 CLI 命令。无需编写任何代码,只需下载 Node.js,CoolQ 和 CQHTTP,安装 Koishi,并在命令行中输入 koishi init 和 koishi start 就能直接搭建一个简单的机器人。你也可以通过修改 koishi init 生成的配置文件来定制你的机器人。与此同时,Koishi 还配备了丰富和人性化的提示,进一步提高调试体验。

功能强大的 API

Koishi 的 API 包括下面几个部分:

  • Receiver:将收到的信息转化为事件进行分发,且同时支持 HTTP 和 WebSocket
  • Sender:完美契合 CQHTTP API 的一套异步发送器,同样支持 HTTP 和 WebSocket
  • Middleware:支持异步操作的中间件系统,可以让你高效地处理每一条信息
  • Context:用上下文描述了机器人可能的运行环境,让你得以对不同的群进行不同的处理
  • Plugin:将逻辑以插件的形式封装,可以实现更好的模块化和配置化
  • Command:Koishi 的核心功能之一,使用链式调用轻松创建指令,同时提供了大量的实用特性
  • Database:内置的数据库系统,但并不依赖具体的数据库实现,无论何种数据库都可以在 Koishi 中使用

每一个部分都经过了精心的编写,可以让你轻松实现任何需求。

丰富的生态系统

Koishi 在编写时,也同样编写了大量的官方插件作为补充。它们有些 Koishi 的基础功能,有些则为 Koishi 的使用提供了许多便利。更重要的是,这十多个插件都可以作为 Koishi 插件开发的极好示范。

下面是一些例子:

  • koishi-plugin-common:常用的十余种功能共同组成的内置插件
  • koishi-plugin-schedule:添加和管理计划任务
  • koishi-plugin-teach:教机器人说话
  • koishi-plugin-image-search:让机器人搜图

除了现在已经发布的十多种官方插件外,还有更多的插件正在开发中。

支持多机器人、用户管理……

Koishi 不仅能迅速实现简单的需求,对于大型项目也有自己专业的支持。Koishi 原生地支持了多机器人开发,同时为这些机器人之间互通数据、共用服务器、保证数据安全提供了原生的解决方案,这有助于在保持高性能的同时,将腾讯风控造成的影响降低到最小。除此以外,Koishi 还内置了一套用户管理机制,不仅几乎能满足一切需求,还具有良好的扩展性,任何人都可以在插件中扩展用户的字段。

类型与单元测试

Koishi 在开发时借助了下面的工具:

  • 使用 TypeScript 编写
  • 使用 Jest 进行单元测试
  • 使用 Eslint 进行代码风格检查
  • 使用 GitHub Actions 进行持续集成

作为一个拥有万余行代码的大项目,Koishi 主要模块的测试覆盖率已经达到了 99%。你大可以放心使用。顺便说一句,Koishi 现在已经支持直接调用 TypeScript 了,如果你想为你的 Node 机器人开发提供完整的代码提示和类型检查的话,相信没有更好的选择。

体积小,却五脏俱全

下面的图展示了 Koishi 与其他 CQHTTP 的 Node SDK 的对比:

a0158b32ab65f42b5b522bb2cb3e9ec0.png

注:依赖数量如果表示为 X/Y,则 X 表示核心库依赖数量,Y 表示命令行工具依赖数量。

详细的帮助文档

说了这么多,如果你已经对编写 QQ 机器人、对使用 Koishi 产生兴趣的话,那么就去看看 Koishi 的官方文档吧!相信这份详细的帮助文档将打消你的一切疑虑。

Koishi​koishi.js.org
a23c5eb077178004fdc48aaebf5f1106.png

下面是 Koishi.js 的源代码,如果觉得不错的话,记得点个 star 哦:

https://github.com/koishijs/koishi​github.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值