root and Claude Opus 5.5
384ea3d8d6
chore(release): v0.3.33
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 20:09:55 +08:00
root and Claude Opus 5.5
680419bb64
feat(scrape): TMDB 标志写 clearlogo.png
...
- 富详情请求加 images(include_image_language=zh,en,null),作品原语言不是中英文时另取 /images;
选一张 PNG 标志(原语言 → 中文 → 英文 → 无文字,同语言按评分)存作品字段 logoPath,变化时触发重刮
- 刮削布局新角色 clearlogo:电影写影片目录 clearlogo.png、剧集写剧集根目录,库根 / 平铺电影 <视频名>-clearlogo.png;
覆盖方式与 hash 规则同其它图片
- 布局金样差分登记偏离 tmdb_clearlogo;mock TMDB 支持 logos 与 /images
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 19:37:34 +08:00
root and Claude Opus 5.5
0f656f0f58
chore(release): v0.3.32
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 18:58:53 +08:00
root and Claude Opus 5.5
e46eb0e3c3
feat(adapters): TMDB 列表与筛选、豆瓣榜单 / 标签 / 筛选 / 搜索、bgm 浏览与趋势,豆瓣 / bgm 请求缓存端口
...
- TMDB:流行趋势(日 / 周)、电影 / 剧集榜单、discover 参数映射、分页搜索;列表类请求 TTL 6 小时
- 豆瓣 / bgm:列表与搜索请求经 MetaRequestCache 与限流,失败(403 / 风控页)不缓存
- contracts:发现页条目、分页、查询校验与筛选字典;storage.cacheTtl 追加 meta* 字段
- testkit:mock TMDB 加列表接口
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 18:04:43 +08:00
root and Claude Opus 5.5
81405f1e94
chore(release): v0.3.31
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 17:22:49 +08:00
root and Claude Opus 5.5
731336ccb1
chore(release): v0.3.30
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 16:14:15 +08:00
root and Claude Opus 5.5
5434ae8ee8
feat(tmdb): 剧集组列表与详情适配(组序号即季号,保留 TMDB 原季集号)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 15:45:12 +08:00
root and Claude Opus 5.5
4fa001750b
chore(release): v0.3.29
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 12:39:07 +08:00
root and Claude Opus 5.5
fb6c76875c
chore(release): v0.3.28
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-04 00:10:13 +08:00
root and Claude Opus 5.5
0085e45ca7
chore(release): v0.3.27
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-03 21:49:03 +08:00
root and Claude Opus 5.5
6b19cede62
chore(release): v0.3.26
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-03 20:08:42 +08:00
root and Claude Opus 5.5
c30a758a74
feat(subtitles): 字幕库验证码由智能体视觉接管;字幕站原站视图下载当前字幕
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-03 11:43:08 +08:00
root and Claude Opus 5.5
227f7ea4f9
chore(release): v0.3.24
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-03 02:42:05 +08:00
root and Claude Opus 5.5
59b3680f35
feat(subtitles): 字幕站(SubHD、字幕库)在线搜索与下载;rar / 7z 解压;验证码与页面解析在沙箱里
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-03 02:28:29 +08:00
root and Claude Opus 5.5
92d456d123
chore(release): v0.3.23
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-03 02:06:23 +08:00
root and Claude Opus 5.5
1a76d2d700
chore(release): v0.3.22
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-03 01:30:32 +08:00
root and Claude Opus 5.5
feee481915
chore(release): v0.3.21
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-03 00:54:04 +08:00
root and Claude Opus 5.5
c29dbb4376
feat(sites): 公开 BT 站详情(简介、文件清单、bgm 条目);修 AniBT 资源 ID 带 - 时判非法
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-03 00:43:25 +08:00
root and Claude Opus 5.5
06ba0711e2
chore(release): v0.3.20
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-03 00:26:32 +08:00
root and Claude Opus 5.5
8da8679a04
chore(release): v0.3.19
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 23:49:15 +08:00
root and Claude Opus 5.5
d1f4dec472
test(sites): 憨憨真实详情摘录补下载 / 标题行
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 23:39:12 +08:00
root and Claude Opus 5.5
653bdcb976
fix(sites): 憨憨详情页按真实结构解析豆瓣块与 MediaInfo
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 23:29:19 +08:00
root and Claude Opus 5.5
df22200bfd
chore(release): v0.3.18
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 23:19:24 +08:00
root and Claude Opus 5.5
b42543e6f3
chore(release): v0.3.17
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 22:34:58 +08:00
root and Claude Opus 5.5
b8876542b8
feat(sites): 内置公开 BT 站 Nyaa / 蜜柑 / AniBT / AnimeGarden / 萌番组
...
- 新专用解析器(spiders/public.ts):RSS / Torznab / JSON API,搜索 + 最新列表 + 按资源 ID 取种子或磁力
- 手写定义(definitions/public.ts,public: true),并入内置定义表;定义视图按 public 标为 public_bt
- 添加站点:公开 BT 站可从内置站一键添加(专用适配器、默认定时抓取、默认不进搜索集合),手填 RSS 保留
- 样例取自 2026-10-02 公开接口,截前两条
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 21:19:19 +08:00
root and Claude Opus 5.5
9cdf492291
fix(sites): OurBits 详情页按 BBCode 解析简介
...
OurBits 的简介在 div.ubbcode 里是未渲染的 BBCode(站点前端脚本渲染),按 HTML 取文本后
[quote] / [img] / [url] 原样留下、换行全被合并。extractDetailPage 遇到 ubbcode 容器且内容带 BBCode 标记时,
改用 pageFromBbcode 取简介 / 截图 / MediaInfo(换行保留),发布者、文件、标签与页面上的外部 ID 照旧。
覆盖层补 fileListPath(viewfilelist.php),与憨憨一样按需取文件列表。脱敏样例 OURBITS_DETAIL_PAGE + 测试。
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 20:59:41 +08:00
root and Claude Opus 5.5
ff79554a09
chore(release): v0.3.16
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 20:43:06 +08:00
root and Claude Opus 5.5
64e1dfb1d2
fix(sites): 按真实列表页修正 OurBits / 彩虹岛 / 憨憨 解析
...
2026-10-02 用真实账号各抓一次列表页与用户页(只读)核对:
- OurBits:标题列嵌套 table.torrentname 有 5 个 td,td:nth-child(n) 先命中嵌套格子,
大小全为 0、发布时间 N/A;改为只匹配行的直接子单元格。副标题原取成标签块,改为标签之后的正文;
新增标签与列表页 IMDb / 豆瓣 ID(label.imdb_rate / douban_rate 的 data 属性)
- 彩虹岛:font.subtitle 去掉前面的 div.tag 与末尾徽标,标签单独取
- 憨憨:新增列表标签(span.tag,不含促销)
- 纯数字 IMDb ID 补成 tt + 7 位(imdbIdOf)
- 用户页核对:下载量为 0 是站点实际显示(VIP),解析正确;上传量四站与页面一致
- 脱敏样例 sites-2026.ts + 定义测试;差分登记 23 条有意偏离(新增 labels、OurBits 副标题)
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 20:16:27 +08:00
root and Claude Opus 5.5
cac1833f53
chore(release): v0.3.15
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 18:35:41 +08:00
root and Claude Opus 5.5
ceb66f8c77
feat: v0.3.8–v0.3.14 工作区汇总(依赖升级、整理来源、手动入库、原地入库等)
...
生产 v0.3.8~v0.3.13 均由 8013196 加工作区修改构建部署,此前未提交;本提交补齐源码,
并含未部署的 v0.3.14 原地入库。中间各版本源码状态未保存,无法逐版拆分,详见
docs/plan/17-full-upgrade.md 与 docs/plan/18-organize-release.md。
- v0.3.8 全面升级:Deno workspace 依赖、Router 8 / Vite 8、camofox 1.18.0 / Node 24、
PostgreSQL 18.6、备份客户端 18.6、演示 qB 5.2.4
- v0.3.9 媒体整理:分类规则、整理来源与目录快照(0059)、文件管理整理入口
- v0.3.10 手动下载与入库:独立手动下载、详情页资源下载、TMDB / Local 元数据兜底
(metadata.resolve_organize)、正常多版本 / 一次性洗版(0060)
- v0.3.11 搜索详情与桌面黑边修复
- v0.3.12 列表分页、搜索历史、首页概况
- v0.3.13 统一整理弹窗与队列
- v0.3.14 原地入库(0061,未部署)
同批审计修复:
- 刮削入队:确认原记录存在后才删重放产生的新记录;写回 run 关联失败时保持 queued,
由处理器补关联(对齐 MP 先登记、只在入队失败时记失败)
- 识别升级链只在结果更确定时采用,不再用 no_match 顶替原有歧义候选
- bluray_dir 资产以原盘目录本身为刮削根(MP 同做法)
- metadata.resolve_organize 登记到入库排障 Skill 与能力地图
- db/src/types.ts 按迁移重新生成;contracts 整理动作枚举顺序与数据库对齐
- 测试:原地入库用例改为直接查记录表;domain 测试模板补 version
- 前端:通知铃铛弹层与用户菜单统一样式;站点卡片共用卡头、底栏贴底、分页间距
依赖升级证据只提交摘要文件,registry-snapshot.json 移至 .local/(SHA-256 记于文档)。
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 15:47:17 +08:00
root and Claude Fable 5.1
8013196e3f
chore(release): v0.3.7
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-10-01 00:28:04 +08:00
root and Claude Fable 5.1
006549a49f
chore(release): v0.3.6
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-30 22:53:47 +08:00
root and Claude Fable 5.1
b137f365c5
chore(release): v0.3.5
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-30 21:39:55 +08:00
root
1ce937345e
Merge branch 'cf2'
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
# Conflicts:
# docs/plan/00-first-version-plan.md
2026-09-30 21:27:34 +08:00
root and Claude Opus 5.5
6b14b0da45
feat(browser): 插件真实坐标点击与页面内容读取(CF-2)
...
- umt 插件 POST /umt/tabs/{id}/mouse-click:page.mouse.click,跨域 iframe 的 Turnstile 也点得到;click 坐标优先走它,旧镜像退回 elementFromPoint
- 适配器 pageContent(地址 / 标题 / outerHTML / 正文 / navigator.userAgent);setEgress 返回插件出口模式
- mock camofox 增加 Cloudflare 模式(auto / interactive / captcha)与插件鼠标点击
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 21:26:53 +08:00
root
389c49dd12
Merge branch 'det2'
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
# Conflicts:
# packages/adapters/src/sites/definitions/audiences.json
# scripts/mp-sync/movieclaw-overrides/audiences.json
2026-09-30 20:50:04 +08:00
root and Claude Opus 5.5
92830c3ef3
fix(adapters): 观众详情页按真实页面适配(DET-2)
...
- 促销:详情 h1 是 font.free / font.halfdown 等 + 剩余时间 span[title],新增 umt.detail.promo 覆盖列表促销字段(以前一律判成无促销并覆盖列表的免费)
- 标题去掉 h1 里的「剩余时间:」;发布时间不再取标题区的促销到期时间
- 做种 / 下载 / 完成数、种子 Hash:umt.detail.fields.seeders / leechers / snatched / infoHash
- 副标题去掉评分徽标;标签只取最内层;上传者取 span.torrent-uploader-wrap,标签精确匹配(避开「发布者带宽」)
- 简介:去掉站点声明(page.descriptionStrip)与 MediaInfo 控件(codetop / show / hide),源码换行不再算一行
- 截图排除豆瓣海报与站点横幅
- 列表副标题改取 span.torrent-subtitle-text(以前前面粘着标签文字)
- 脱敏真实样本:详情 2 页进 differential/detail.test.ts,列表 1 页进 MP 差分
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 20:49:29 +08:00
root and Claude Opus 5.5
b1d30bd6ee
fix(sites): 观众健康检查误报未登录,健康失败原因细分(HC-1)
...
观众 2026 版首页没有 <a href=logout>:退出按钮在 userbar 的 data-uploader-actions JSON
里由脚本渲染,旧登录标志 a[href*="logout"] 永远不命中,健康检查报"未登录"而用户数据正常。
- audiences 定义 loginSuccess 改为 #info_block / usercp.php / logout 任一(0.2.1)
- 健康检查判定细分:登录页 / 权限页 / 疑似人机验证 / 找不到登录标志(带选择器),
原始判定写入 last_health.detail,站点概览技术信息展示
- 首页只是找不到登录标志时,以 24 小时内用户数据解析成功为已登录证据(同 MP)
- 新 SiteError 类 challenge(cf-mitigated: challenge),不算凭据错误;健康状态 challenge
- testkit mock 增加 setHeaderLayout;加观众首页脱敏结构样本的差分测试
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 20:38:48 +08:00
root and Claude Fable 5.1
5ddc88d928
chore(release): v0.3.4
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-30 19:56:29 +08:00
root and Claude Fable 5.1
395417f298
chore(release): v0.3.3
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-30 19:10:41 +08:00
root and Claude Opus 5.5
f9901b514b
feat(metadata): overview falls back to Chinese variants only (MD-2)
...
- adapters: overviewLanguages() limits overview/tagline chain to Chinese
variants (zh-CN→zh-SG→zh-TW→zh-HK); titles keep full chain; season
supplement fetch skips languages useless for overview
- setting metadata.overviewNonChineseFallback (default off) + UI switch
- media detail shows "暂无简介" for empty entity/episode overview
- scripts/overview-recompute.ts: recompute stored non-Chinese overviews
from kv_cache only (no TMDB requests), dry-run by default, --apply
- tests: chain unit tests, Heart Signal (103147) fixture, server
recompute test, MP differential for episode overview
- runbook + CHANGELOG
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 18:04:23 +08:00
root and Claude Fable 5.1
04460fa98e
chore(release): v0.3.2
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-30 03:29:04 +08:00
root and Claude Opus 5.5
ebd07c9230
feat(browser): fixed Windows identity and per-site egress in umt-cookies plugin (BR-4)
...
- browser:launching hook generates a Windows fingerprint once (camoufox-js,
os=windows), persists it to /root/.camofox/umt-identity.json and reuses it
on every launch; Firefox/Camoufox upgrades only bump UA/version fields
- Windows fontconfig with absolute font dir (upstream path was broken)
- GET /umt/identity (public UA/OS/version) and PUT /umt/sessions/:id/proxy
(per-context proxy; Firefox no longer uses container HTTP_PROXY env)
- adapter identity()/setEgress(), splitBrowserOnlyCookies for cf_clearance/__cf_bm
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 03:17:06 +08:00
root and Claude Fable 5.1
9296161683
chore(release): v0.3.1
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-30 01:26:48 +08:00
root and Claude Fable 5.1
8c50e4672f
chore(release): v0.3.0
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-29 22:55:20 +08:00
root and Claude Opus 5.5
3b340745bf
feat(downloads): live speeds and active/completed split on the download panel (DL-2)
...
- GET /download-tasks/board?state=active|completed: per-torrent dl/up speed,
ETA, seeds/leechs, downloader total speed (transfer/info), counts for both
groups, latest organize result (status, reason code, open decision)
- live qB data cached per instance for 2 s with in-flight coalescing
- panel: total speed line, 进行中 / 已完成 segments remembered locally,
4 s polling while the page is visible, mobile layout, "—" for zero speed
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-29 21:44:34 +08:00
root and Claude Fable 5.1
8e47d8715b
Merge branch 'qb1'
...
Co-Authored-By: Claude Fable 5.1 <[email protected] >
2026-09-29 21:05:25 +08:00
root and Claude Opus 5.5
9be9813021
feat(sites): structure release detail pages and rework the detail drawer (DETAIL-1)
...
Adapters (pure functions + tests):
- detail-description: strip HTML/BBCode residue, drop site template blocks and
ad/signature lines (configurable rules), parse PT info blocks (◎ / 【】 / 『』 /
「键:」) into infoBlock and body paragraphs
- mediainfo: MediaInfo and BDInfo (quick summary + full report) into a summary
of container/duration/bitrate/size, video (HDR/DV), audio and subtitle tracks
- file-tree: file list into a flattened directory tree with sizes and
main/sample/subtitle/extra roles
- formatDetailPage combines them; the server computes it when reading the
cached detail page, so existing caches benefit without a refetch
Contracts: SiteReleasePage gains infoBlock, paragraphs, media, fileTree.
Web: drawer now reads top-down: meta row (promo/H&R, size, peers, upload time,
IMDb/TMDB/豆瓣 tags) → 资料 → 简介 (collapsible) → 技术规格 (raw folded) →
截图 grid with keyboard lightbox → 文件 tree; inventory overlay moved into the
fixed footer next to 下载.
Fixtures: 6 desensitized samples from the local cache (site.detail and RSS
descriptions) plus synthetic multi-track MediaInfo, BDInfo, bracket blocks and
directory file lists.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-29 20:50:42 +08:00
root and Claude Opus 5.5
74f1566985
feat(qbittorrent): login compat for v4/v5.0-5.2 and three auth modes
...
- Login success = HTTP 200 "Ok." or 204 (5.2+); session cookie taken from
Set-Cookie by name (SID / QBT_SID_<port> / custom) and sent back as-is.
- Failure classes: "Fails." / 401 -> auth; 403 IP ban / 429 -> rate;
wrong API Key (403) -> auth with hint; 5xx -> protocol.
- Downloader instance auth kind: password / api_key (qB 5.2+ Bearer, no
/auth/login) / none (whitelisted subnet); stored in settings.authKind,
credential write-only in secret_ref, cleared when switching to none.
One qbAuthConfig() shared by sync, agent capability and connection test.
- Settings form: auth kind select, password / API Key fields (no echo).
- testkit: mock qB 5.2 login behaviour, IP ban, bypassAuth;
makeTorrent({ realPieces }) builds real piece hashes for real qB checks.
- Real-container matrix (QB_REAL, skipped by default): 5.1.2 and 5.2.4,
login / add / query / tags / pause-resume / delete keeping data.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-29 20:42:17 +08:00
root
f41cd96fee
Merge branch 'hh2'
...
# Conflicts:
# apps/server/src/modules/browser/service.ts
# apps/web/app/components/browser/desktop-view.tsx
# apps/web/app/components/browser/site-origin-view.tsx
# packages/contracts/src/browser.ts
2026-09-29 17:43:00 +08:00