refactor(platforms): 平台能力改为子类实现,注册不再逐项绑定函数
- Platform 由 dataclass 字段绑定改为基类:id / label / entries 是类属性,能力是子类方法, 未实现的阶段保持基类 None,capabilities() 与 /api/platforms 输出不变 - gdgxk:session(原 new_session)/ login / list_courses / discover / study / _relogin 收进 class Gdgxk(Platform),解析与上报 helper 仍是模块级函数 - guanyixue:改成 class Guanyixue(Platform),方法转调 jspx / study - 删除 src/study_tool/pugins/ 草稿目录(内容与 platforms/gdgxk.py 重复, pugin.json 里按名字声明 study / entries 的绑定方式作废,元数据改由类属性承载) - 引擎 / 路由 / quiz / contract / 前端未改动 - 同步 docs/architecture.md、AGENTS.md、docs/OPTIMIZATION.md
This commit is contained in:
@@ -2,6 +2,28 @@
|
||||
|
||||
已实现、但还需要你实测确认的事项。确认没问题后把对应条目删掉。
|
||||
|
||||
## 平台契约改为子类实现(注册方式调整)
|
||||
|
||||
**状态**:已实现,待实测确认。
|
||||
|
||||
### 做了什么
|
||||
|
||||
- `Platform` 从 dataclass「注册时逐项传函数」改成基类:`id` / `label` / `entries` 是类属性,
|
||||
能力是子类方法;没实现的阶段保持基类的 `None`,`capabilities()` 与 `/api/platforms` 不变。
|
||||
- `platforms/gdgxk.py`:`session`(原 `new_session`)/ `login` / `list_courses` / `discover` /
|
||||
`study` 等收进 `class Gdgxk(Platform)`;解析 / 上报类 helper 仍是模块级函数。
|
||||
- `platforms/guanyixue.py`:改成 `class Guanyixue(Platform)`,方法转调 `jspx` / `study`。
|
||||
- 删掉 `src/study_tool/pugins/` 草稿目录:它和 `platforms/gdgxk.py` 内容重复,
|
||||
`pugin.json` 里「按名字声明 `study` / `entries`」的绑定方式作废,元数据改为类属性。
|
||||
- 引擎 / 路由 / `quiz.py` / 前端 / `platforms/contract.py` 均未改动。
|
||||
|
||||
### 怎么测
|
||||
|
||||
1. `GET /api/platforms` 仍返回 `gdgxk` 与 `guanyixue`,`capabilities` 与改动前一致
|
||||
(广东公需课:`login` / `session` / `renew` / `profile` / `courses` / `discover` / `study`)。
|
||||
2. 莞易学:刷新课程 → 发现课程 → 开始学习照常(旧版 / 新版都跑一次)。
|
||||
3. 广东公需课:登录 → 刷新课程 → 开始学习照常。
|
||||
|
||||
## 平台流程下沉(契约第二步)
|
||||
|
||||
**状态**:已实现,待实测确认。
|
||||
|
||||
Reference in New Issue
Block a user