# 启点读书 QDReader 签到 Autman 插件 QDReader/起点读书 Autman 签到插件。用户侧触发词统一使用“启点”,避免平台关键词麻烦;QX 只负责抓取 Cookie,账号管理、执行查询和签到都在 Autman 插件内完成。 ## 文件位置 正式插件文件: ```text plugins/qdreader/qdreader_sign_autman.js ``` 实机 JS 导入副本: ```text js/qdreader_sign_autman.js ``` Raw 链接: ```text https://gitea.chickliu.fun/Hermes/autman-plugins/raw/branch/main/plugins/qdreader/qdreader_sign_autman.js https://gitea.chickliu.fun/Hermes/autman-plugins/raw/branch/main/js/qdreader_sign_autman.js ``` ## 当前交互设计 ### 一级菜单 ```text 启点账号 启点查询 ``` `启点账号` 只负责账号管理: ```text 启点账号管理 1. 查看账号 2. 添加/更新账号 3. 账号详情/修改备注 4. 删除账号 5. 清空账号 q. 退出 请回复序号 ``` `启点查询` 只负责最后执行日志和执行动作,不做实时接口查询: ```text 启点查询(最近签到记录) 1. 查看最近签到记录 2. 查询单个账号最近记录 3. 立即执行签到 q. 退出 请回复序号 ``` ### 快速通道 ```text 启点ck 启点签到 启点签到 qdreader sign ``` `启点ck` 只保留快速提交 Cookie,不再承担查询/导出/批量导入等管理功能。 ## 账号与备注 - 保存 Cookie 后自动绑定当前 `sender.getUserID()`。 - 查询、删除、手动签到默认只操作当前用户绑定的账号。 - 账号详情、删除、单账号查询都使用编号选择,不要求用户复制/输入 UID。 - 添加/更新账号后会提示是否添加备注。 - 修改备注在“账号详情/修改备注”中完成。 - 删除账号或清空当前用户账号时,会同步清理对应备注。 - 普通回复只展示脱敏 UID 和备注,不输出完整 Cookie。 ## 存储 主数据桶: ```text hermes_qidian ``` 主要 key: ```text 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_sign_api # 签名网关 qdreader_retry_count # 请求失败重试次数 qdreader_cron_silent # 定时无账号静默 ``` 读取兼容顺序: ```text bucketGet("hermes_qidian", key) ↓ fallback get(key) ↓ fallback bucketGet("otto", key) # 旧数据兼容 ``` 写入顺序: ```text bucketSet("hermes_qidian", key, value) set(key, value) ``` ## 签名与签到流程 1. 从 Cookie 解析 `QDHeader/qdh/uid/guid/qimei/qimei36`。 2. `POST /sign` 获取请求签名头。 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. 汇总每个账号签到结果。 ## 查询数据来源 `启点查询` 不请求起点实时接口,只读取最后执行日志: ```text qdreader_last_run_json # 最近一次执行批次 qdreader_last_result_json # 每个 uid 最近一次执行结果 ``` 因此“查询”语义是“最近签到记录/最后执行日志”。刚添加但从未执行过的账号会显示“暂无执行记录”。 ## 本地验证 ```bash node -c plugins/qdreader/qdreader_sign_autman.js node -c js/qdreader_sign_autman.js node tests/qdreader_plugin.test.mjs ```