Skip to content

feat: 插件中心支持禁用/启用插件,修复 CNB 镜像版本检测 - #10

Merged
MimoKit merged 1 commit into
MimoKit:masterfrom
yiwuerxin:feat/disable-plugins
Jul 26, 2026
Merged

feat: 插件中心支持禁用/启用插件,修复 CNB 镜像版本检测#10
MimoKit merged 1 commit into
MimoKit:masterfrom
yiwuerxin:feat/disable-plugins

Conversation

@yiwuerxin

Copy link
Copy Markdown
Contributor

概述

基于最新 master(含已合并的 #9),新增两个改动,本地 NoneBot2 + Python 3.11 实测通过(78 个单元测试全绿,ruff check/format 通过):

1. 插件中心禁用/启用插件

  • 插件卡片与详情抽屉显示「运行中 / 已禁用」状态徽标,详情抽屉内可一键禁用/启用
  • 实现方式:run_preprocessor 钩子检测 matcher.plugin_name,对已禁用插件抛出 IgnoredException,在响应器级拦截事件——被禁插件不再响应消息,已调度的后台任务不受影响
  • 禁用列表持久化于 localstore 的 disabled_plugins.json,重启后仍生效;控制台自身禁止禁用,防止锁死
  • 新增 PUT /api/plugins/disabled 接口;GET /api/plugins 每项返回 disabled 标记
  • 新增 tests/test_disabled.py(存储读写、拦截钩子、API 校验等 6 个用例)

2. 修复 CNB 镜像版本检测

  • 问题:切换到 CNB 镜像后检测更新提示「GitHub 暂无发布版本」——CNB 无匿名 raw 直链(/-/raw 返回 SPA 页面,blob 页内容靠 JS 加载)
  • 修复:改用 git 浅克隆读取版本号(git clone --depth 1 --filter=blob:none --sparse + sparse-checkout set --no-cone /pyproject.toml),镜像连通性测试改用 git ls-remote
  • 已实测真实 CNB 镜像 https://cnb.cool/MimokitStudio/nonebot-plugin-mimo-console 可正确返回版本号

其他

  • 版本号 0.1.3 → 0.1.5

分支为单个整合提交,便于审阅。

- 新增禁用插件功能:插件卡片与详情抽屉显示「运行中/已禁用」徽标,
  详情抽屉内可一键禁用/启用;基于 run_preprocessor 抛
  IgnoredException 在响应器级拦截事件,后台任务不受影响;
  禁用列表持久化于 localstore 的 disabled_plugins.json,
  重启后仍生效;控制台自身禁止禁用
- 新增 PUT /api/plugins/disabled 接口与 DisabledStore 存储,
  GET /api/plugins 返回 disabled 标记
- 修复 CNB 镜像版本检测:CNB 无匿名 raw 直链,改用 git 浅克隆
  (--depth 1 --filter=blob:none --sparse)读取 pyproject.toml,
  镜像连通性测试改用 git ls-remote,实测可正确返回版本号
- 版本号 0.1.3 -> 0.1.5,新增 tests/test_disabled.py
@MimoKit
MimoKit merged commit 9ae612c into MimoKit:master Jul 26, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants