feat: show full qdreader autman submit command

This commit is contained in:
2026-05-17 11:50:44 +08:00
parent 376ed17066
commit 9400aa05c9
4 changed files with 46 additions and 41 deletions
+18 -18
View File
@@ -1,12 +1,12 @@
# qdreader-autman-sign
点读书(QDReaderCookie 获取 + Autman 机器人签到插件。
点读书(QDReaderCookie 获取 + Autman 机器人签到插件。
设计修正后:**Quantumult X 只负责获取 Cookie****Autman 插件负责保存 Cookie 并执行签到**。签到请求复用上游 `Yuheng0101/X/Tasks/QDReader` 的核心方式:用 H5 Cookie 解析 `QDHeader/uid/guid/qimei`,调用签名网关 `https://api.120399.xyz/sign` 生成起点接口所需签名头,再请求起点 H5 福利中心签到接口。
## 目录
- `qx/rewrite/qdreader_cookie.js`QX 重写 JS,拦截起点读书 `getlogininfo`,自动保存 Cookie 并生成提交文本
- `qx/rewrite/qdreader_cookie.js`QX 重写 JS,拦截起点读书 `getlogininfo`,自动保存 Cookie 并弹窗展示完整快速登录命令 + CK
- `qx/subscribe/qdreader.qx.snippet`QX 订阅片段。
- `qx/subscribe/qdreader.subscription.json`:订阅 JSON。
- Autman 正式插件已迁移到统一插件仓库:`Hermes/autman-plugins/plugins/qdreader/qdreader_sign_autman.js`
@@ -36,10 +36,10 @@ hostname = h5.if.qidian.com
1. QX 开启 MitM 并信任证书。
2. 启用上面的重写。
3. 打开起点读书 App → 我的 → 福利中心。
4. QX 通知显示 `Cookie 新增成功``Cookie 更新成功`
4. QX 通知/弹窗显示 `Cookie 新增成功``Cookie 更新成功`,正文包含完整 `启点ck <cookie>` 快速登录命令,可直接复制发给 Autman 机器人
5. QX 会写入两个持久化变量:
- `QDREADER_COOKIE`JSON Map,格式 `{ "uid": "cookie" }`
- `QDREADER_AUTMAN_SUBMIT_TEXT`:可直接发给 Autman 机器人的文本,格式 `点ck <cookie>`
- `QDREADER_AUTMAN_SUBMIT_TEXT`:可直接发给 Autman 机器人的完整快速登录命令,格式 `点ck <cookie>`
## 2. Autman 签到插件
@@ -58,35 +58,35 @@ https://gitea.chickliu.fun/Hermes/autman-plugins/raw/branch/main/js/qdreader_sig
插件规则:
```text
起点ck ...
起点签到 ...
起点读书 ...
启点账号
启点查询
启点ck ...
启点签到 ...
启点读书 ...
qdreader ...
```
定时运行:插件头注已内置 `//[cron: 15 7 * * *]`,每日 07:15 自动执行全部账号签到。
手动运行:直接给 Autman 机器人发送 `点签到`;单账号发送 `点签到 <uid>`
手动运行:直接给 Autman 机器人发送 `点签到`;单账号发送 `点签到 <uid>`
交互命令:
```text
起点ck <QX抓到的完整cookie>
起点ck json {"uid":"cookie"}
点ck 查询
起点ck 导出
起点ck 删除 <uid>
起点签到
起点签到 <uid>
起点ck 帮助
启点账号
启点查询
点ck <QX抓到的完整cookie>
启点签到
启点签到 <uid>
qdreader sign
```
保存位置:Autman 参数 `qdreader_cookie_json`,格式兼容上游脚本环境变量 `QDREADER_COOKIE`
保存位置:Autman 插件专属 bucket `hermes_qidian.qdreader_cookie_json`,格式兼容上游脚本环境变量 `QDREADER_COOKIE`
```json
{"uid":"cookie"}
```
签名网关参数:`qdreader_sign_api`,默认:
签名网关参数:`hermes_qidian.qdreader_sign_api`,默认:
```text
https://api.120399.xyz
+17 -12
View File
@@ -1,12 +1,12 @@
/*
* 点读书 Cookie 自动获取/更新 - Quantumult X
* 点读书 Cookie 自动获取/更新 - Quantumult X
* 只负责抓取 Cookie 并生成“复制给 Autman 机器人”的提交文本,不主动请求 Autman。
*
* 抓取:打开起点读书 App → 我的 → 福利中心。
* 抓到后会:
* 1. 保存/更新 QX 本地 QDREADER_COOKIE(JSON Map)
* 2. 写入 QDREADER_AUTMAN_SUBMIT_TEXT,内容可直接复制发给 Autman 机器人
* 3. 通知里展示提交命令摘要
* 3. 通知/弹窗里展示完整快速登录命令 + CK,便于直接复制
*/
const KEY = 'QDREADER_COOKIE'
@@ -45,21 +45,25 @@ function getUid(cookie, body) {
uid = obj && obj.Data && obj.Data.UserInfo && (obj.Data.UserInfo.UserId || obj.Data.UserInfo.userId)
return uid ? String(uid) : ''
}
function notify(title, sub, msg) { $notify(title, sub || '', msg || '') }
function preview(s, n) {
s = String(s || '')
return s.length > n ? s.slice(0, n) + '…' : s
function notify(title, sub, msg, opts) {
try { $notify(title, sub || '', msg || '', opts || {}) } catch (e) { $notify(title, sub || '', msg || '') }
}
function copyAction(command) {
return {
'open-url': 'shortcuts://run-shortcut?name=Copy&input=text&text=' + encodeURIComponent(command),
'media-url': 'data:text/plain;charset=utf-8,' + encodeURIComponent(command)
}
}
const cookie = getHeader($request && $request.headers, 'Cookie')
if (!cookie) {
notify('点读书', 'Cookie 获取失败', '请求中没有 Cookie')
notify('点读书', 'Cookie 获取失败', '请求中没有 Cookie')
$done({})
} else {
const body = typeof $response !== 'undefined' ? ($response.body || '') : ''
const uid = getUid(cookie, body)
if (!uid) {
notify('点读书', 'Cookie 获取失败', '无法识别 uid,请确认已登录并进入福利中心')
notify('点读书', 'Cookie 获取失败', '无法识别 uid,请确认已登录并进入福利中心')
$done({})
} else {
const old = parseJson($prefs.valueForKey(KEY) || '{}', {}) || {}
@@ -69,8 +73,8 @@ if (!cookie) {
const jsonMap = JSON.stringify(old)
$prefs.setValueForKey(jsonMap, KEY)
// 发给 Autman 机器人的命令。插件支持“起点ck <cookie>”和“起点ck json <JSON>”
const submitText = `点ck ${cookie}`
// 发给 Autman 机器人的完整快速登录命令。Autman 插件保留“启点ck <cookie>”快速提交通道
const submitText = `点ck ${cookie}`
$prefs.setValueForKey(submitText, SUBMIT_KEY)
const title = isNew ? 'Cookie 新增成功' : (changed ? 'Cookie 更新成功' : 'Cookie 未变化')
@@ -78,9 +82,10 @@ if (!cookie) {
`Uid: ${uid}`,
`账号数: ${Object.keys(old).length}`,
`提交文本已写入 QX 变量: ${SUBMIT_KEY}`,
`发给 Autman 机器人:${preview(submitText, 180)}`
'下面是完整快速登录命令,可直接复制发给 Autman 机器人:',
submitText
].join('\n')
notify('点读书', title, msg)
notify('点读书', title, msg, copyAction(submitText))
$done({})
}
}
+2 -2
View File
@@ -2,8 +2,8 @@
hostname = h5.if.qidian.com
[rewrite_local]
# > 点读书获取 Cookie:只保存本地并生成可复制给 Autman 机器人的“起点ck ...”文本
# > 点读书获取 Cookie:只保存本地并弹窗展示可复制给 Autman 机器人的完整“启点ck ...”文本
^https?:\/\/h5\.if\.qidian\.com\/argus\/api\/v1\/user\/getlogininfo url script-response-body https://gitea.chickliu.fun/Hermes/qdreader-qx-cookie-autman-bot/raw/branch/main/qx/rewrite/qdreader_cookie.js
# 签到由 Autman 插件仓库 Hermes/autman-plugins/plugins/qdreader/qdreader_sign_autman.js 执行;插件内置每日 07:15 定时任务,也支持手动“点签到”。
# 签到由 Autman 插件仓库 Hermes/autman-plugins/plugins/qdreader/qdreader_sign_autman.js 执行;插件内置每日 07:15 定时任务,也支持手动“点签到”。
+9 -9
View File
@@ -1,12 +1,12 @@
{
"name": "点读书 QDReader Cookie + Autman Sign",
"description": "Quantumult X 重写只负责自动获取/更新起点读书 Cookie,并生成可复制给 Autman 签到插件的提交文本;签到由统一 Autman 插件仓库中的插件执行,插件内置定时和手动运行。",
"name": "点读书 QDReader Cookie + Autman Sign",
"description": "Quantumult X 重写只负责自动获取/更新起点读书 Cookie,并弹窗展示可复制给 Autman 签到插件的完整快速登录命令;签到由统一 Autman 插件仓库中的插件执行,插件内置定时和手动运行。",
"mitm": [
"h5.if.qidian.com"
],
"rewrite": [
{
"name": "点读书获取 Cookie",
"name": "点读书获取 Cookie",
"match": "^https?:\\/\\/h5\\.if\\.qidian\\.com\\/argus\\/api\\/v1\\/user\\/getlogininfo",
"type": "script-response-body",
"script": "https://gitea.chickliu.fun/Hermes/qdreader-qx-cookie-autman-bot/raw/branch/main/qx/rewrite/qdreader_cookie.js"
@@ -19,15 +19,15 @@
"js_runtime_copy": "https://gitea.chickliu.fun/Hermes/autman-plugins/raw/branch/main/js/qdreader_sign_autman.js",
"cron": "15 7 * * *",
"manual_commands": [
"点ck <cookie>",
"点签到",
"点签到 <uid>",
"起点ck 查询",
"起点ck 删除 <uid>"
"点ck <cookie>",
"点签到",
"点签到 <uid>",
"启点账号",
"启点查询"
]
},
"prefs": {
"QDREADER_COOKIE": "QX 本地保存的 Cookie JSON Map",
"QDREADER_AUTMAN_SUBMIT_TEXT": "可直接复制发给 Autman 机器人的提交文本:起点ck <cookie>"
"QDREADER_AUTMAN_SUBMIT_TEXT": "可直接复制发给 Autman 机器人的完整快速登录命令:启点ck <cookie>"
}
}