Stapxs / Stapxs-QQ-Lite-2.0

一个兼容 OneBot 协议的非官方网页版 QQ 客户端、electron 客户端。
https://stapxs.github.io/Stapxs-QQ-Lite-2.0/
Apache License 2.0
414 stars 34 forks source link

[建议]: 添加OneBot标准支持 #68

Closed liyanes closed 1 year ago

liyanes commented 1 year ago

emm... 看一下是否合适, 因为这是一个大工作, 但是可以有普遍的支持, 还可以支持其它的软件

即OneBot标准, 参考 NoneBot2 项目,

使用OneBot标准可以兼容各大adapters, 无需考虑各种兼容问题, 但是肯定需要从新架构

Stapxs commented 1 year ago

其实本来就部分支持 OneBot11,因为在本应用开发的时候 OneBot12 还在草案阶段所以并没有支持 12。

没有明写支持 OneBot 的原因是因为 OneBot 并没有规定消息体的具体格式,所以各家实现多少会有所不同 ……

举个例子:oicq 的消息 ID 是个 Base64 并且可以解析出消息发送者和消息发送时间序号等信息,而 gocqhttp(的旧版本)消息 ID 是个纯数字;这在我最终实现功能的时候多少会有影响。

因为不保证所有 OneBot 的 bot 都能正常使用,所以干脆就没写出来。

sql2 现在支持消息体为 CQ 码的和消息体为 oicq2 json 的 bot,并且优先保证 oicq 能完美使用。

其实设计的时候也做了消息格式化的组件和消息体替换模版的功能,如果要兼容新的 bot 改起来还是很方便的 emmm

Stapxs commented 1 year ago

其次是 sql2 不会本地缓存聊天记录 …… 这意味着 bot 要有获取聊天记录的功能

由于大部分 bot 的目的是作为群机器人的,所以有这功能的不多 sql2 优先支持的 oicq 就有这个功能,所以我就干脆写了只支持 oicq emmmm

liyanes commented 1 year ago

好吧....

那就优先使用oicq, 暂时不考虑OneBot标准的事

Stapxs commented 1 year ago

倒不是说不支持 OneBot …… 是各家 bot 多多少少有自己实现上的差异 如果需要适配某个 OneBot bot(甚至可以不是 QQ 的)也可以提我可以去看看 XD

但是想要兼容所有的 OneBot bot 而且不出错不太可能 ……

liyanes commented 1 year ago

Python Nonebot2那个项目就兼容了所有的OneBot及其拓展, 也就是adapter和plugin各种独立运行而兼容, 拓展功能可能有点差异

对于js可能有点难度... , 没有那种开源活跃的兼容库(至少我没发现), 也就是adapter都得自己写...

不过优先原则, 能用就行, 目前没有特别需求的情况下先用oicq吧, 这个项目已经足够任何日常使用了(主要是想同时接入bot/gpt管理我的账号...弄OneBot标准好干一些, 因为开源库支持多一点, 现在看来双设备登录比较好, 也比较好处理掉线问题)

Stapxs commented 1 year ago

扩展实现上倒是不难 …… 就是烦一点 emmmm js 有很快乐的 Webpack 可以热装载代码执行(

只是我没那么大的精力去维护一套我自己都用不着的插件装载功能就是了 XD

liyanes commented 1 year ago

能用就可以了👀

反正双登录也能解决, (除了登录风控有点烦)

至于拓展和热加载, 等这个项目做的足够大再说, 毕竟这是小众需求