-
-
Notifications
You must be signed in to change notification settings - Fork 340
Open
Labels
discussionOpen discussions on topics related to this projectOpen discussions on topics related to this project
Description
NoneBot 在有限的推广的情况下,被这么多人使用,让我感到很意外。它甚至到现在文档还没有完全写完🙄 。
经过半年多的发展,NoneBot 已经基本可用,虽然还是会有一些小问题,但这不妨碍已经有很多投入使用的应用在使用它。
实际上 NoneBot 还有很多不足,比如:
- 基于 python-aiocqhttp(跟 酷Q 强耦合),无法支持其它机器人平台
- 过于以「命令」为核心,而忽略了大量其它类型的消息处理需求(虽然可以通过 python-aiocqhttp 的
on_message
装饰器来做到);实际上 NoneBot 的前身,小开机器人,的「过滤器」特性还是比较有用的,可以用来进行消息预处理(比如日志、语音转文本)和拦截(比如屏蔽特定消息类型),但在写 NoneBot 的时候砍掉了 (1.6.0message_preprocessor
) - 没有全局黑名单机制,无法简单地屏蔽其它 bot 的消息(实际上这个功能只要有「过滤器」功能就可以轻松实现)
- 注册命令的选项不够灵活,比如不能对不同命令设置不同的过期时间、超时时间,没有全局权限、全局
only_to_me
等 (1.8.2, 1.9.0) - 权限控制功能不够强大,无法进行单用户和群组粒度的控制 (1.8.0, 1.9.0
PermissionPolicy
) - 命令会话机制针对单个用户做区分,无法简单地实现群组内多人游戏等需求
- 没有持久化命令会话 (1.8.0
apause
) - 没有维护用户、群组、系统全局的整体状态,只有命令层面的状态
- ……
最近想到 QQ 机器人的开发其实可以从现在流行的语音助手里面寻找灵感,比如对话的回合数、对一些可选参数如何假定、通过辅助的 app 或 web 管理面板来修改配置等。实际上 web 面板这个功能也是可以加入到 NoneBot 的,可以把面板的控制项以可扩展的形式开放 API。
另外,考虑 NoneBot 的定位,我希望它可以被用于任何聊天机器人的场景,无论是闲聊对话、信息查询、推送通知、消息转发、游戏等。
目前命令的参数处理方面的 API 其实也不够好,1.2 版本加入的参数过滤器一定程度上缓解了 args_parser
的复杂和冗余,但总觉得还是不够。
总的来说 NoneBot 还有非常大的提高空间,但由于我今年需要准备考研,因此 NoneBot 会暂停开发将近一年。一年之后,如果时间恰当的话,我打算完全重写这个框架。
如果大家在使用过程中有什么比较好的思路、使用案例,可以在这里讨论,等重写的时候,可以尽可能的考虑更多实际使用需求。
ryan4yin, O1Uncle, Zhuyike, luotom and StarHeartHunt
Metadata
Metadata
Assignees
Labels
discussionOpen discussions on topics related to this projectOpen discussions on topics related to this project