fix(qdreader): align optional tasks with upstream

This commit is contained in:
2026-05-20 21:57:34 +08:00
parent 9091137852
commit 510f7f086a
5 changed files with 257 additions and 43 deletions
+9
View File
@@ -643,3 +643,12 @@ QDReader 签到结果判定补充:
- 上游返回“今日已签到/已经签到/重复签到”应视为成功,不应把账号计入失败。
- 签名网关返回 `url 不在允许的接口列表内` 说明本地可选任务接口尚未被网关白名单支持;对这类可选任务应显示为“已跳过”,不要让整个账号失败。
- 保留原始错误到任务对象的 `rawMsg` 即可,聊天摘要只显示短的跳过原因,避免刷屏。
## 12. QDReader 上游完全体任务修复记录
- 不要只凭接口名猜测“激励任务/每日任务/大咖荐书”的调用链;应先反混淆上游 `Yuheng0101/X/Tasks/QDReader/qdreader.js`,再按真实流程移植。
- 激励任务 `finishWatch` 可能返回 `result=9`,上游将其视为可继续/已受理,再回查 `mainPage` 判断任务是否完成;插件不能把 `result=9` 直接计为失败。
- 每日任务不是简单取任务列表第一个。上游会先处理 `packagelist` 里的惊喜/前置任务,再从任务列表按标题定位“每日任务”,执行多次 `finishWatch` 后回查完成状态。
- 大咖荐书不是一次 `pullmessage` 即结束。消息 token 需要由 `UserId` 经过 `(uid * 4 & 0x7ffffffffffffffc) ^ 0x113a4f` 后转 base62;流程是:拉会话列表 → 对红点会话带 `senderId` 拉消息 → 从最近消息提取 `orderId``getrewarddetail` → 根据奖励类型走 `rewardcallback``addbookshelf`。如果直接用十进制 token 或缺少 `senderId`,容易返回“参数错误”。
- “无可领取礼包/今日已签到”属于幂等成功类提示;这类提示不应让整个账号汇总失败。
- 每次修复这类链路必须补 VM 回归测试:请求路径、签名 payload 里的参数、特殊返回码分类、最终账号成功/失败汇总。