Skip to content

v1.4.0 — 插件开发体验升级(OFbot 重写问题修复)

Choose a tag to compare

@Laffey-82 Laffey-82 released this 31 Aug 19:33
· 7 commits to main since this release

背景

依据 docs/OFBOT2_PLUGIN_ISSUES.md 的 13 项实测问题,对插件开发体验做系统性升级,分三阶段落地。

阶段一(P1):声明与配置体验

  • 指令冲突检测与解决:plugin conflicts 全量扫描;加载期不再因冲突失败——后加载插件冲突命令自动注册为 <插件名>.<命令>(如 /order_ledger.分账),system 插件命令保留,conflicts 支持 rename/skip 显式覆盖;Web「插件」页冲突徽标 + GET /api/v1/plugins/conflicts
  • 权限角色映射 permission_roles:权限点只授予指定角色,默认行为向后兼容
  • 配置驱动定时任务:任务参数支持 ${a.b.c} 模板,保存配置重载即生效;ctx.register_managed_task 让运行时任务进入 Web「定时任务」页
  • config_schema 强校验:保存前补默认值并按 JSON Schema 校验,失败返回字段级错误;配置表单支持递归渲染嵌套对象

阶段二(P2):数据与参数

  • records list() 新增 filters(gte / lte / contains / in)与 sort_by
  • ctx.register_models 随 init_db(extra_models=...) 真正建表
  • 命令参数新增 type: "rest" 贪婪字符串(剩余参数合并)

阶段三(P3):运行与测试工具

  • 文本转图 ctx.text_image()(Pillow)+ OneBot 群文件上传 upload_group_file
  • 命令/任务/监听 handler 声明 ctx 参数即自动注入 PluginContext
  • 定时任务 target 支持按群列表门控(["group:a", "group:b"])
  • 重载时模型/任务声明变化给出明确告警
  • 新增 app.testing.FakeBotHarness 插件端到端夹具与 CLI plugin e2e
  • 命令级 max_arg_length 覆盖全局参数长度限制

插件

  • 新增 order_ledger 插件(OFbot 重写:通用订单管理与记账/分账,适用于代打/代购/拼单等任意订单场景),内置并收录插件市场(general 分类);与市场 stats/commission 插件共存时命令自动命名空间化,不冲突不加载失败
  • 全量 303 项测试通过、order_ledger 端到端 12 条指令通过、ruff 与 compileall 全绿