v0.3.0
本次更新为框架带来了多个核心新功能和架构级改进,极大地提升了功能上限和稳定性。
🚀 全新核心功能
-
[核心] 引入插件会话等待机制 (
CommandManager):- 首次引入了基于
generator的会话等待功能。插件现在可以通过yield WaitAction来暂停执行并等待特定事件(如用户的下一条命令),从而实现复杂的多步交互流程。 - 内置了
WaitCommand用于等待命令,并提供了可扩展的WaitAction基类供开发者自定义等待逻辑。 - 会话恢复逻辑通过
@async_task在独立线程中执行,确保了框架主事件流的非阻塞。
- 首次引入了基于
-
[核心] 引入中央定时器管理器 (
TimerManager):- 新增
TimerManager模块,提供统一、高效、线程安全的delay接口,用于调度所有延迟和周期性任务。 - 原有的
AutoRestartOnebot心跳检查和QQDataCacher垃圾回收已全部迁移至此模块管理,统一了框架内的异步任务调度。
- 新增
-
[核心] 引入路径延迟初始化 (
murainbot.paths):- 新增
PathManagerProxy代理类,实现了路径对象的按需、延迟初始化。这解决了在框架未完全启动前导入paths模块可能导致的问题,极大增强了模块的健壮性和独立性。
- 新增
✨ 功能增强与开发者体验
- 事件系统 (
EventClassifier): 为MessageEvent,GroupIncreaseEvent等数十个事件添加了方便的布尔属性 (.is_group,.is_at_me(),.is_from_admin,.was_invited等),显著简化了插件中的条件判断逻辑。 - 下载工具 (
common.download_file_to_cache): 功能大幅增强,增加了对文件大小的限制、请求超时、路径穿越安全检查,并优化了流式下载逻辑。 - 日志系统: 改进了多个关键路径的异常处理和日志记录,现在能更精确地定位到出错的处理器函数和模块。
🛠️ 其他改进
- 构建系统 (
setup.py): 优化了打包逻辑,现在会根据白名单精确复制默认插件,而非整个文件夹。 - 代码忽略 (
.gitignore): 全面更新了.gitignore文件,使其更加符合现代Python项目的标准。 - 启动逻辑 (
main.py): 调整了入口文件,使工作目录的传递方式更加清晰可靠。
What's Changed
- 合并Dev:实现会话等待功能,允许通过yield的方式等待自定义内容,发生后再恢复执行的功能,实现TimerManager,统一简单的定时任务,减少开销 by @xiaosuyyds in #75
Full Changelog: v0.2.0...v0.3.0