feat(qdreader): store task switches per account

This commit is contained in:
2026-05-20 17:32:48 +08:00
parent 93d529ec5f
commit bf4377a5df
5 changed files with 176 additions and 80 deletions
+12
View File
@@ -624,3 +624,15 @@ QDReader 这次踩坑说明:账号 ID 识别成功,不代表 Autman 会话
- 高风险的导出/批量导入功能默认不做,除非 BOSS 明确需要。
- Node VM 测试应模拟:`sender.reply``sender.listen``sender.getUserID``get/set``bucketGet/bucketSet``request`
- 测试必须覆盖:快速提交、菜单添加、备注提示、详情改备注、编号选择删除/查询、旧 bucket 兼容、新 bucket 写入、用户隔离、手动执行只跑当前用户、cron 跑全部账号。
## 12. QDReader 账号级任务开关约定
启点/QDReader 这类多账号签到插件的附加任务(广告、抽奖、兑换、章节卡、大咖荐书等)不要再放全局开关里统一控制。BOSS 确认更合适的模型是“直接写进账号里,对每个账号单独管理”。仓库实现约定如下:
- Cookie、用户绑定、备注仍分别保存;附加任务开关保存为 `qdreader_task_pref_json`
- `qdreader_task_pref_json` 结构为 `uid -> { taskKey: boolean }`,例如 `{ "12345": { "adv": true } }`
- `启点账号` 菜单内提供“账号任务配置”,先选择账号,再切换该账号的任务开关。
- 定时/手动签到执行时按 uid 读取自己的任务配置;一个账号开启广告任务不影响其它账号。
- 删除单个账号或清空当前用户账号时,同步删除该 uid 的任务配置,避免残留配置误作用于重新添加的账号。
- 旧全局开关 key 可留作历史数据,但不要作为运行依据;测试必须覆盖“一个账号开启,另一个账号不执行”的隔离场景。