Files
qx/docs/qx-rewrite-lessons.md
T

63 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# QX 重写制作经验(QDReader 复盘)
## 仓库结构
参考 `chickliu/qx` 老仓库风格,仓库只保留通用顶层目录,不再保留旧兼容路径:
```text
conf/ # Quantumult X 远程重写订阅文本
js/ # Rewrite 脚本入口,订阅文本直接引用这里
```
## QX 订阅格式
BOSS 常用的远程订阅不是 JSON 对象,而是类似下面的纯文本:
```text
hostname = h5.if.qidian.com
^https:\/\/h5\.if\.qidian\.com\/argus\/api\/v1\/user\/getlogininfo url script-response-body https://gitea.chickliu.fun/Hermes/qx/raw/branch/main/js/qdreader_cookie.js
```
注意:即使文件名叫 `*.json`,只要给 QX 作为重写订阅使用,内容也应该是这种文本格式,而不是 JSON object。
## QDReader 这类 Cookie 捕获脚本原则
1. QX 只负责抓取 Cookie,不直接调用 Autman。
2. 不在 QX 本地持久化 Cookie;账号保存交给 Autman 插件。
3. 弹窗正文只保留完整快速提交命令:
```text
启点ck <完整 Cookie>
```
4. 不要在弹窗正文加说明、账号数、变量名、截断摘要;BOSS 要直接复制整段命令。
5. 失败弹窗可以保留简短错误,例如“请求中没有 Cookie”“无法识别 uid”。
6. Rewrite 类型按实际取值选择:
- 只读请求头 Cookie`script-request-header` 即可;
- 需要读取响应 body 辅助解析 uid:用 `script-response-body`
QDReader 当前需要兼容从响应 body 取 `UserId`,所以使用 `script-response-body`
## 与 Autman 插件配合
Autman 插件保留快捷命令:
```text
启点ck <cookie>
```
并由 Autman 负责:
- 解析 uid
- 保存到专属 bucket,例如 `hermes_qidian`
- 绑定发送者用户 ID
- 后续账号管理、备注、签到和最后执行日志查询。
## 验证清单
- `node --check js/qdreader_cookie.js`
- raw 地址返回 HTTP 200
- `conf/qdreader.conf`
- `js/qdreader_cookie.js`
- 订阅文本内容第一行是 `hostname = ...`,第二行是 rewrite rule。
- 新增重写时按 `conf/<name>.conf` + `js/<name>.js` 放置,不再创建 `qx/subscribe/``qx/rewrite/` 兼容目录。