fix(qdreader): archive daily sign logs at midnight

This commit is contained in:
2026-05-19 15:05:55 +08:00
parent 169710f129
commit 0e985c790a
5 changed files with 202 additions and 23 deletions
+12 -9
View File
@@ -1,6 +1,6 @@
# 启点读书 QDReader 签到 Autman 插件
QDReader/起点读书 Autman 签到插件。用户侧触发词统一使用“启点”,避免平台关键词麻烦;QX 只负责抓取 Cookie,账号管理、执行查询和签到都在 Autman 插件内完成。
QDReader/起点读书 Autman 签到插件。用户侧触发词统一使用“启点”,避免平台关键词麻烦;QX 只负责抓取 Cookie,账号管理、执行查询、日志归档和签到都在 Autman 插件内完成。
## 文件位置
@@ -93,8 +93,9 @@ hermes_qidian
qdreader_cookie_json # uid -> full cookie
qdreader_user_bind_json # uid -> sender.getUserID(),用户绑定索引
qdreader_remark_json # uid -> 备注名
qdreader_last_result_json # uid -> 单账号最后执行结果 JSON 字符串
qdreader_last_run_json # 最近一次执行批次日志、来源和汇总
qdreader_last_result_json # uid -> 单账号当日/当前批次结果 JSON 字符串(每日零点归档前清空)
qdreader_last_run_json # 当日/当前批次日志、来源和汇总(每日零点归档前清空)
qdreader_archive_json # yyyy-mm-dd -> 已归档批次日志,用于判断历史签到结果
qdreader_sign_api # 签名网关
qdreader_retry_count # 请求失败重试次数
qdreader_cron_silent # 定时无账号静默
@@ -127,20 +128,22 @@ set(key, value)
- 同时提取 `qdh/QDHeader/guid/qimei/qimei36` 供签名网关使用,其中 `qdh` 只取 Cookie 的 `qdh/QDH`,不再用 `QDHeader` 顶替,避免签名网关 `decodeQDHAuto` 解码失败。
2. `POST <qdreader_sign_api>/sign` 获取请求签名头。默认签名网关基址是 `https://api.120399.xyz/qdreader`
3. `POST https://h5.if.qidian.com/argus/api/v3/checkin/checkin` 完成签到。
4. 写入单账号最后结果 `qdreader_last_result_json`,包括 `ok/msg/time/source/runId`
5. 写入批次日志 `qdreader_last_run_json`,包括触发来源、开始/结束时间、成功/失败/总数和每账号结果;即使账号执行异常也会记录失败日志。
6. 汇总每个账号签到结果。
4. 写入单账号当日结果 `qdreader_last_result_json`,包括 `ok/msg/time/source/runId`
5. 写入当日批次日志 `qdreader_last_run_json`,包括触发来源、开始/结束时间、成功/失败/总数和每账号结果;即使账号执行异常也会记录失败日志。
6. 每日 00:00 的 cron 触发时,先把上一份 `qdreader_last_run_json` 按完成日期写入 `qdreader_archive_json`,再清空 `qdreader_last_result_json` / `qdreader_last_run_json`,然后执行新一天签到并反馈结果。
7. 汇总每个账号签到结果。
## 查询数据来源
`启点查询` 不请求起点实时接口,只读取最后执行日志:
```text
qdreader_last_run_json # 最近一次执行批次
qdreader_last_result_json # 每个 uid 最近一次执行结果
qdreader_last_run_json # 当日/当前批次
qdreader_last_result_json # 每个 uid 当日/当前批次结果
qdreader_archive_json # 每日零点归档后的历史批次
```
因此“查询”语义是“最近签到记录/最后执行日志”。刚添加但从未执行过的账号会显示“暂无执行记录”。
因此“查询”语义是“最近签到记录/最后执行日志”。刚添加但从未执行过的账号会显示“暂无执行记录”。如果当日日志已被零点任务清空,`启点查询` 会回退到最近归档,根据归档中的账号结果判断昨日/历史签到情况并反馈给用户。
## 本地验证