Skip to content

v0.3.0

Choose a tag to compare

@xiaosuyyds xiaosuyyds released this 07 Aug 10:45
· 15 commits to master since this release
793d334

本次更新为框架带来了多个核心新功能和架构级改进,极大地提升了功能上限和稳定性。

🚀 全新核心功能

  • [核心] 引入插件会话等待机制 (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