Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

希望打通企业微信机器人、飞书机器人的开发,将nonebot2打造成最全面的智能机器人 #341

Closed
mrchenxxx opened this issue Apr 28, 2021 · 6 comments · Fixed by #425
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@mrchenxxx
Copy link

希望打通企业微信机器人、飞书机器人的开发,将nonebot2打造成最全面的智能机器人

@mrchenxxx mrchenxxx added the enhancement New feature or request label Apr 28, 2021
@yanyongyu yanyongyu added the help wanted Extra attention is needed label Apr 28, 2021
@yanyongyu
Copy link
Member

我个人并没有那么多时间去维护这么多协议的开发,希望能有大佬来提供支持

欢迎在 https://v2.nonebot.dev/store.html 发布协议适配

@yanyongyu yanyongyu pinned this issue Apr 28, 2021
@yanyongyu
Copy link
Member

目前飞书适配器已经立项,以后就能用飞书了

@StarHeartHunt StarHeartHunt linked a pull request Jul 23, 2021 that will close this issue
@StarHeartHunt
Copy link
Member

已于 #425 中添加飞书适配器支持

@yanyongyu
Copy link
Member

yanyongyu commented Sep 14, 2021

插件作者依赖了太多基于 cqhttp 适配器本身的函数、数据结构,这是否反应出了平台的抽象程度不够

很遗憾,一个能够适配所有平台的插件接口是很难实现的,每个平台都拥有不同类型的消息,甚至有的平台只能纯文本,onebot v12 已经尽力在做平台统一了,不过类似飞书这类webhook的平台难以做到接口统一化

至少飞书和 cqhttp 更像是两个完全不相同项目的杂合

你说的没错,这就是两个完全独立的平台,不具有任何的共通性,所有的跨平台依赖事件处理函数重载机制来完成

但我认为平台可能需要对插件实现的“最小功能”做出一些约束

目前nonebot仅能做到要求适配器实现Message,甚至无法约束需要实现什么类型的消息,这是平台不统一导致的,框架的适配没你想象的那么容易,但凡你去看看那些垃圾代码以及垃圾api接口就知道了

@yanyongyu
Copy link
Member

cqhttp这边是 MessageEvent 下的 message_type: Literal["group"],这里框架并没有抽象出一个统一的区分私聊和群聊的方法

你是不会用isinstance吗?

isinstance(event, GroupMessageEvent)
isinstance(event, PrivateMessageEvent)

@yanyongyu
Copy link
Member

yanyongyu commented Sep 14, 2021

当前飞书无法获取到消息id,不知道 cqhttp 的情况,适配器是否需要一个方法获取id,以实现一些基于上下文的功能

能不能获取到id是飞书说了算啊,隔壁钉钉连用户信息都不给你呢,上下文功能cqhttp就有啊,飞书不是我写的我不清楚情况,你可以自行查看飞书是否支持get_session_id()进行上下文对话

还有啊,上下文对话是完全可以自定义的,你去看看update permission方法自行定义上下文,插件市场里就有人实现了,跨群、多用户的上下文插件

你发的太多了我看起来太累,建议这种问题去 https://discussions.nonebot.dev/ 不要在这里混乱别人的issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Development

Successfully merging a pull request may close this issue.

3 participants