前记
未经本人允许, 谢绝转载
前情提要: https://invites.fun/d/9651
这块盘我只放服务. 基本不写这块盘. 像 (๐•ᴗ•๐), qb, tr, emby, iyuu, homepage 等全被一(๐•ᴗ•๐)带走了.
---
不幸中的万幸, 之前的 qb 页面开着没关.
因为之前我开着 qb 页面没关, 所有抢救下来了 qb 页面(包括所有的种子详情)
- 大约是 1200 种, 因为 qb 页面里面可以拿到 torrent hash, 所以 torrent 有望恢复
主要流程
⌘ + S, 保存 qb web 页面成单个 html
对 qb web 页面结构进行分析
从 qb web 页面提取 torrent hash, (分类, 标签, 保存(๐•ᴗ•๐)径)
向 iyuu 通过 torrent hash 进行 辅种链接查询
根据 iyuu 返回的 sid 和 torrent_id 组装成对应的下载链接
使用 passkey 进行下载
通过 qb torrent/add 接口批量添加种子
详细操作
仅针对官方 qb webui, 4.5.+, 其他自行研究
⌘ + S, 保存 qb web 页面成单个 html
对 qb web 页面结构进行分析
状态, 分类, 标签, tracker: document.id('Filters_pad')
种子列表标题: document.querySelector("#torrentsTableDiv > table > thead > tr")
种子列表: document.querySelector("#torrentsTableDiv > table > tbody")
这里你可能会发现这里面其实是有 tracker url 的. 不过这个没用, 因为还是没法下载到 torrent 文件
从 qb web 页面提取标题
$$
Array.from(document.querySelector("#torrentsTableFixedHeaderDiv > table > thead > tr").querySelectorAll('th')).map(t => ({
ti(๐•ᴗ•๐)e: t.ti(๐•ᴗ•๐)e, class: t.className
}))
$$
从 qb web 页面提取 torrent hash, (分类, 标签, 保存(๐•ᴗ•๐)径)
- 种子 hash 列表:
Array.from(document.querySelectorAll("#torrentsTableDiv > table > tbody > tr")).map(_ => _.dataset['rowId'])
其他信息, 如 分类, 保存(๐•ᴗ•๐)径, 直接写太麻烦了, 建议使用 jQuery 之类的, 而非 原生 JS 选择器
$$
Array.from(document.querySelectorAll("#torrentsTableDiv > table > tbody > tr")).map(t => ({
hash: t.dataset['rowId'],
meta: Array.from(t.querySelectorAll('td')).map(_ => _.ti(๐•ᴗ•๐)e)
}))
$$
向 iyuu 通过 torrent hash 进行 辅种链接查询
- 分别填入以下信息
- sign:
IYUU token
- timestamp:
客户端时间戳
- version:
2.0.0
- hash:
["cf7d88fd656d10fe5130d13567aec27068b96676"]
- sha1: hash 字段的 sha1 计算结果, http://www.sha1-online.com/ 填写后点击 hash, 输出的 6ecca4d49213d5fd3ec81153a9b9d3395400596a 即为实际内容
根据 iyuu 返回的 sid
, base_url
, download_page
和 torrent_id
组装成对应的下载链接
通过 qb torrent/add 接口批量添加种子
其他
断电,放电,重启后发现数据可读了😋抓紧时间备份了下
所以发现损毁之后不要慌,先备份能备份的,然后拔插下试试。
SSD没法拔,就断电后按开机键,等几分钟,插电!~ 开机!~~
稍微有点跑偏了, 或许我应该把标题改成 手把手教你写一个 iyuu 辅种客户端