希望打通企业微信机器人、飞书机器人的开发,将nonebot2打造成最全面的智能机器人
mrchenxxx opened this issue · 6 comments
希望打通企业微信机器人、飞书机器人的开发,将nonebot2打造成最全面的智能机器人
我个人并没有那么多时间去维护这么多协议的开发,希望能有大佬来提供支持
欢迎在 https://v2.nonebot.dev/store.html 发布协议适配
目前飞书适配器已经立项,以后就能用飞书了
已于 #425 中添加飞书适配器支持
插件作者依赖了太多基于 cqhttp 适配器本身的函数、数据结构,这是否反应出了平台的抽象程度不够
很遗憾,一个能够适配所有平台的插件接口是很难实现的,每个平台都拥有不同类型的消息,甚至有的平台只能纯文本,onebot v12
已经尽力在做平台统一了,不过类似飞书这类webhook的平台难以做到接口统一化
至少飞书和 cqhttp 更像是两个完全不相同项目的杂合
你说的没错,这就是两个完全独立的平台,不具有任何的共通性,所有的跨平台依赖事件处理函数重载机制来完成
但我认为平台可能需要对插件实现的“最小功能”做出一些约束
目前nonebot仅能做到要求适配器实现Message
,甚至无法约束需要实现什么类型的消息,这是平台不统一导致的,框架的适配没你想象的那么容易,但凡你去看看那些垃圾代码以及垃圾api接口就知道了
cqhttp这边是 MessageEvent 下的 message_type: Literal["group"],这里框架并没有抽象出一个统一的区分私聊和群聊的方法
你是不会用isinstance吗?
isinstance(event, GroupMessageEvent)
isinstance(event, PrivateMessageEvent)
当前飞书无法获取到消息id,不知道 cqhttp 的情况,适配器是否需要一个方法获取id,以实现一些基于上下文的功能
能不能获取到id是飞书说了算啊,隔壁钉钉连用户信息都不给你呢,上下文功能cqhttp就有啊,飞书不是我写的我不清楚情况,你可以自行查看飞书是否支持get_session_id()
进行上下文对话
还有啊,上下文对话是完全可以自定义的,你去看看update permission方法自行定义上下文,插件市场里就有人实现了,跨群、多用户的上下文插件
你发的太多了我看起来太累,建议这种问题去 https://discussions.nonebot.dev/ 不要在这里混乱别人的issue