4.1 KiB
4.1 KiB
启点读书 QDReader 签到 Autman 插件
QDReader/起点读书 Autman 签到插件。用户侧触发词统一使用“启点”,避免平台关键词麻烦;QX 只负责抓取 Cookie,账号管理、执行查询和签到都在 Autman 插件内完成。
文件位置
正式插件文件:
plugins/qdreader/qdreader_sign_autman.js
实机 JS 导入副本:
js/qdreader_sign_autman.js
Raw 链接:
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
当前交互设计
一级菜单
启点账号
启点查询
启点账号 只负责账号管理:
启点账号管理
1. 查看账号
2. 添加/更新账号
3. 账号详情/修改备注
4. 删除账号
5. 清空账号
q. 退出
请回复序号
启点查询 只负责最后执行日志和执行动作,不做实时接口查询:
启点查询(最近签到记录)
1. 查看最近签到记录
2. 查询单个账号最近记录
3. 立即执行签到
q. 退出
请回复序号
快速通道
启点ck <QX抓到的完整cookie>
启点签到
启点签到 <uid>
qdreader sign
启点ck 只保留快速提交 Cookie,不再承担查询/导出/批量导入等管理功能。
账号与备注
- 保存 Cookie 后自动绑定当前
sender.getUserID()。 - 查询、删除、手动签到默认只操作当前用户绑定的账号。
- 账号详情、删除、单账号查询都使用编号选择,不要求用户复制/输入 UID。
- 添加/更新账号后会提示是否添加备注。
- 修改备注在“账号详情/修改备注”中完成。
- 删除账号或清空当前用户账号时,会同步清理对应备注。
- 普通回复只展示脱敏 UID 和备注,不输出完整 Cookie。
存储
主数据桶:
hermes_qidian
主要 key:
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 # 定时无账号静默
读取顺序:
bucketGet("hermes_qidian", key)
↓ fallback
get(key)
写入顺序:
bucketSet("hermes_qidian", key, value)
set(key, value)
签名与签到流程
- 从 Cookie 解析账号标识与签名参数:
- 优先解析
QDHeader第一段有效数字 uid; - 若
QDHeader第一段为(null)或无效,继续检查QDHeader第 12 段的真实UserId; - 再读取
uid/userid/userId/UserId; - 最后才回退
ywguid/gwguid/guid,与 QX 抓包脚本保持一致; - 同时提取
qdh/QDHeader/guid/qimei/qimei36供签名网关使用,其中qdh只取 Cookie 的qdh/QDH,不再用QDHeader顶替,避免签名网关decodeQDHAuto解码失败。
- 优先解析
POST <qdreader_sign_api>/sign获取请求签名头。默认签名网关基址是https://api.120399.xyz/qdreader。POST https://h5.if.qidian.com/argus/api/v3/checkin/checkin完成签到。- 写入单账号最后结果
qdreader_last_result_json,包括ok/msg/time/source/runId。 - 写入批次日志
qdreader_last_run_json,包括触发来源、开始/结束时间、成功/失败/总数和每账号结果;即使账号执行异常也会记录失败日志。 - 汇总每个账号签到结果。
查询数据来源
启点查询 不请求起点实时接口,只读取最后执行日志:
qdreader_last_run_json # 最近一次执行批次
qdreader_last_result_json # 每个 uid 最近一次执行结果
因此“查询”语义是“最近签到记录/最后执行日志”。刚添加但从未执行过的账号会显示“暂无执行记录”。
本地验证
node -c plugins/qdreader/qdreader_sign_autman.js
node -c js/qdreader_sign_autman.js
node tests/qdreader_plugin.test.mjs