feat(plugins): 插件支持热加载与启用/停用清单
- pugins/__init__.py 重写:load_plugins / discover / set_enabled / reload
- 热加载:把 study_tool.pugins.<名字> 的模块从 sys.modules 摘掉后重新 import;
重载前先 registry.unregister 旧 id,平台 id 改了也不会留残影
- 启用清单存设置项 plugins({"disabled": [...]}):未列出的默认启用,新插件自动生效;
停用即从注册表摘掉,/api/platforms 与账号平台下拉同步消失
- platforms/registry.py 新增 unregister(pid)
- 新接口:GET /api/plugins、POST /api/plugins/{name}/enable|disable、
POST /api/plugins/reload、POST /api/plugins/{name}/reload;失败返回 ok=false
- 同步 docs/pugin.md(新增「加载与启停」)、docs/architecture.md、docs/OPTIMIZATION.md、AGENTS.md
This commit is contained in:
@@ -29,7 +29,7 @@ src/study_tool/
|
||||
jspx.py 莞易学旧版:会话 / 登录 / 课程抓取 / 旧版学习流程
|
||||
study.py 莞易学新版 SPA:StudyClient / 接口学习 / 视频流程
|
||||
pugins/ 插件式平台(加载器扫目录,新增插件不改代码)
|
||||
__init__.py load_plugins():扫 pugins/*/pugin.json 并 import main.py
|
||||
__init__.py load_plugins / discover / set_enabled / reload(启停 + 热重载)
|
||||
gdgxk/
|
||||
pugin.json 注册信息:id / title / name(只放元数据)
|
||||
main.py 广东公需课:SSO 换票 + 视频进度心跳
|
||||
|
||||
Reference in New Issue
Block a user