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