Releases: Meloland/melobot
Releases · Meloland/melobot
v3.0.0
melobot 3.0.0 更新日志
⚠️ 特别:
- melobot v3 是跨平台、跨协议、支持多路 IO 及其他高级特性的 bot 开发框架,与 v2 完全不兼容。
- v3 文档教程:melobot docs
特色 | 描述 |
---|---|
实用接口 | 封装高频使用的异步逻辑,使业务开发更简洁 |
插件管理 | 低耦合度、无序的插件加载与通信 |
处理流设计 | 可自由组合“处理中间件”为处理流,提升了各组件的复用率 |
热插拔/重启 | 处理流支持动态热插拔,支持 bot 级别的重启 |
会话支持 | 可在处理流中自动传递的、可自定义的会话上下文 |
协议支持 | 所有协议被描述为 IO 过程,因此支持各类协议 |
跨平台 | 更简洁的跨平台接口,便捷实现跨平台插件开发 |
跨协议 IO | 支持多个协议实现端同时输入,自由输出到指定协议实现端 |
日志支持 | 日志记录兼容标准库和绝大多数日志框架,可自行选择 |
✨ 特性
对比上一预发布版本 3.0.0rc21
,主要有:
- 内置日志器添加
yellow_warn
参数,可在智能着色模式下强制警告消息为醒目的黄色 0dae81d - 现在使用
PluginPlanner
声明插件及各种插件功能 4508081 PluginPlanner
现在支持使用use
装饰器来收集各种插件组件(处理流、共享对象与导出函数) ecec685- 添加了用于处理 OneBot v11 实体(事件、动作与回应)数据模型验证异常的 OneBot v11 适配器接口
when_validate_error
4bddb6a 0589f3a a4d35b3
⏩变更
对比上一预发布版本 3.0.0rc21
,主要有:
- 计划中需要移除的 api 和组件(移除了方法
Args
,Context.in_ctx
与传统插件类Plugin
) ec518f5 - 改进了 io 层的 packet 限制,现在所有 packet 不再是
frozen
的 88eeb85 - 改进了 adapter 层的组件,现在钩子
BEFORE_EVENT
重命名为BEFORE_EVENT_CREATE
,钩子BEFORE_ACTION
重命名为BEFORE_ACTION_EXEC
d50d3a3
👍修复
对比上一预发布版本 3.0.0rc21
,主要有:
- 项目各处类型注解的改进 1bd8760
- OneBot v11 协议中自定义消息段类型创建和解析 3026543 51f7cbe f006ee0 819489f
- OneBot v11 正向 websocket IO 源忽略 bot 停止信号 da0e3df
- 文档与内置异常提示更正
♥️ 新贡献者
- @Asankilp 首次提交 #14
- @NingmengLemon 首次提交 #15
v2.2.0
⚠️ 特别:
- 从 melobot v2.2.0 开始,版本支持为 python >= 3.10。
✨ 新增
- 新增 api:
notice_event()
,req_event()
,meta_event()
,msg_event()
。用于获取不同情景下的事件。 - event 和 action 现提供
mark()
和flag_check()
方法,用于添加标记、进行标记检查。 - MessageEvent 现支持
get_cq_params()
和get_cq()
方法,用于从 event 中提取 cq 消息段和 cq 消息参数。 - 各类文本匹配器(matcher)现支持字符串列表(list[str])入参,同时对于 list[str] 型参数,可启用指定逻辑模式进行工作(and, or, not, xor)。
⏩变更
- 获取事件接口 event() 现已细化为四个接口:
notice_event()
,req_event()
,meta_event()
,msg_event()
。实质上都是返回当前 session 下的 event,但新的 api 对 IDE 类型提示功能更友好。 - 获取 cq 参数方法
get_cq()
现已改为cq_get_params()
。 - PriorityLevel 类更名为 PriorLevel。
- MsgEvent 类更名为 MessageEvent。
- bot 生命周期阶段
BotLife.EVENT_RECEIVED
更名为BotLife.EVENT_BUILT
。 - 修改了 session.args 的返回类型,现在的返回类型为 Dict[str, ParseArgs] | List[Any] | None。若为 Dict[str, ParseArgs] 类型,可使用支持该类型的内置格式化器 ArgFormatter 进行格式化。
👍修复
- 修复了在 session 下发送 action 时尝试附加不存在的 event 的错误。
- 修复了 MessageEvent 在格式化化 cq 参数时,将 int 类型进一步转换为 float 类型的错误。
- 修复了加载插件时,因加载顺序导致的 PluginStore 共享对象重复创建的错误。
- 重写了部分不具体、不清晰、拥有潜在运行隐患的类型标注。
- 修改了部分设计逻辑不合理的内部组件。