真心求一个方向,之前我是写mirai-console插件的,杂糅了很多功能的复合型机器人插件(不是官方的那种QQ机器人),纯Java代码实现,但是代码水平比较有限一般只关注业务逻辑,底层这些架构真的不太懂,由于mirai那边的qsign越来越岌岌可危了所以今天朋友推荐了koishi,只是真的不太清楚我要从哪里入手去改造项目呢?想搜索也不知道看什么才是对的,了解了一点satori和nonebot,但是这两个都是必要的吗?感觉它们和mirai的形式差太远了现在很迷茫……已经不是学生了想少花点时间绕远路所以问一下各位
一般来说很难有什么推荐,主要是对于语言和文档的了解。
你需要去熟读框架的开发文档,了解框架的技术栈,才能基于框架开发。
首先koishi是用ts语言开发,nonebot是基于Python语言开发,对这些语言的了解是很有必要的。
如果你有过相关语言的开发经验,以koishi为例,你可以加入官方的开发QQ群426230045,遇到问题可以及时进行讨论,也能得到一个高质量的交流平台。有一群了解开发的群友会对你的开发大有裨益。
据我所知,mirai的确和koishi、nonebot之间有不小的差异,包括但不限于mirai似乎专门针对QQ、开发语言的不同,开发理念的不同,这些都是需要长时间的了解才会慢慢知道的。
值得一提的是,在你的提问中提到了satori,他被和nonebot并列让我有些疑惑:
satori是一个协议,用来对接框架与聊天平台,实现“对satori开发即可兼容多重聊天平台”的效果,具体可查阅文档。
koishi和nonebot是机器人框架,用来开发和使用“插件”来实现机器人。
以上都是个人的理解,可能存在一些无解,你可以继续通过自己的方式去进一步了解你想了解的东西
上手 Koishi 对着开发文档+参考社区优质插件直接开始编写业务逻辑就行。JS/TS 很简单的,我也是直接一边开发一边学习的语言。
Koishi 自身是模块化的,系统内的插件装卸是以无副作用为目标的,框架是支持热重载的,所以你可以直接参考开发文档在 dev 的运行实例上构建环境进行开发,而不用操心环境搭建。
项目迁移会比较麻烦,因为从实用性和运维以及框架和生态等各角度考虑,你不应该全量迁移你的旧有代码到一个单独的 Koishi 插件内。或许你应该先搭建好你生产环境的 Koishi 机器人,然后对照旧有功能在官方插件社区内尽量查找已有插件还原,再将剩下的功能合理拆分到插件粒度分别实现,然后打包部署到生产环境。
Satori 和 Nonebot 都不是作为一个 Koishi 用户/开发者必须了解或掌握的。
谢谢回复。因为我自己在找的过程中发现koishi、nonebot都是“框架”,但是我又在koishi市场中发现大量nonebot“插件”,就比较疑惑两个同类为何会对接在一起。
我的需求是,登录一个真正的QQ号通过代码来把它变为bot(就是必然有一个配置文件来配置QQ号和密码),而不是使用官方QQ机器人这样的非常规QQ账号来实现。那么似乎koishi的文档只提供了后者的参考资料,所以来求助,是不是已经有先驱实现了通过koishi+某些市场插件达到了我想要的设计。
我的需求是,使用正常的QQ账号通过插件代码来使其自动收发消息,而不是使用QQ官方机器人来做。koshi的生态里有前人实现过这样的插件吗?如果能找到那样的教程我就直接去学习就好了。
这属于第三方对接,可以加koishi非官方群来细说:590104798
koishi+聊天平台适配器+你写的插件就可以达到你想要的效果。
适配器会把信息交给koishi,而你只需要对koishi开发插件即可。
你能做的,是连接插件和koishi这段路,而koishi对接QQ这段路,已经有前人达成,你可以上面的群咨询群友。
值得一提的是,koishi插件市场有一些nonebot的插件,他是使用一些“黑科技”将面向nonebot开发的插件用在了koishi上,仅此而已()
如果你想,这是可以做到的吧(x)
你只要开发一个java的satori适配器就可以了(不是)
这里有一个常见的开发者误区:认为自己学习巧妙的嫁接技术以实现旧代码的复用是比学习新技术更高效的事情。实际上,在你的代码变成企业级(至少十万行)之前,重写和迁移总是更高效的。
Java 的语法与 TypeScript 非常接近,Koishi 本身也大量采用了模块化和 AOP 的开发方式,对于你来说迁移应该并不算难。
(似乎确实 Java 开发者更容易产生这种误解,我不知道为什么。)
哦当然,楼上说的很对,如果你只想让已有的机器人跑起来,就可以不接触 JS/TS,单纯实现一个 Java 的 Satori 适配器即可。当然你仍然需要将现有的 Java 代码从 Mirai API 重构成 Satori API。这个重构成本相比学习 TS 可能会低不少,不过这也意味着你无法享受 Koishi 生态的 1200 个插件。
mirai那边不是有很无痛的解决方案吗
你原先写的mirai插件可以通过这个东西去对接现在开放ob11协议的协议端,例如Lagrange.Core,OpenShamrock v1.9, LLOnebot
如果你不想自己重构我建议你考虑这个方案
群申请一天多了还没通过审批…
这边没看见任何未通过的入群申请呢
包括被过滤的
是非官方群590104798,申请两次了
实在不行可以添加我的QQ 3327930436 然后拉你进群捏
我这也没看到有未通过的申请