jxxghp
2149eb2a60
fix(download): provide fallback category for music torrents
...
Use the music media type as the downloader category only when music has no library classification. Preserve configured categories and qBittorrent automatic-management settings, with SDK-boundary regression coverage.
Refs #7028
2026-10-16 15:13:03 +08:00
jxxghp
8c59a89d57
fix(transfer): debounce monitored file success notifications ( #7026 )
2026-10-16 13:24:31 +08:00
jxxghp
4955b7b9ea
fix: harden backend isolation and execution safety
2026-10-16 09:11:28 +08:00
jxxghp
0eb79ceee2
fix(storage): preserve shared category directories during media cleanup ( #7012 )
2026-10-16 00:33:47 +08:00
jxxghp
63c8c0d71a
fix(transfer): render aggregated success notifications with user template ( #7007 )
2026-10-15 13:10:43 +08:00
jxxghp
5fe8ad98b2
fix(music): make album years optional matching evidence ( #7004 )
2026-10-15 12:16:24 +08:00
jxxghp
2c889a1735
fix(subscribe): 站点本地流控按限流窗口退避 ( #6996 ) ( #7001 )
...
订阅分页搜索遇到站点本地流控(limit_interval/limit_count/limit_seconds)
拒绝时只按秒级 cooldown 反复重试,在整个限流窗口内持续触发风控。现在:
- 本地流控被拒时按站点配置窗口计算退避(访问间隔与计数窗口取最大值,
并多留 1 秒越过窗口的严格比较边界);
- 同一退避写入站点预算冷却,窗口内其它订阅任务不会继续访问该站点;
- 本地流控没有发出请求,不计入连续失败与错误退避类别。
2026-10-15 09:14:13 +08:00
jxxghp
57b883d2bf
feat(music): add global local cover control
2026-10-15 07:20:44 +08:00
flippedyizheng
19f9098d68
fix(mediaserver): require unambiguous title-year match for cross-source fallback ( #6998 )
2026-10-15 07:15:06 +08:00
jxxghp
72c8bff312
feat(music): preserve local covers and fall back after online scraping fails
2026-10-14 23:15:41 +08:00
jxxghp
c4cd6c8ac4
fix(download): confirm tracker forms and blacklist invalid torrents
2026-10-13 21:54:37 +08:00
jxxghp
8cbba9916e
fix(subscribe): prefer complete packs for initial TV downloads
2026-10-13 21:16:22 +08:00
jxxghp
48cffca3a1
feat(transfer): aggregate successful notifications by batch ( #6981 )
2026-10-13 17:21:17 +08:00
jxxghp
98bd038623
fix(music): reconcile album completion and prevent duplicate downloads
...
Recover complete release coverage from successful local transfers and audio tags/CUE before subscription searches. Keep release-group and album boundaries, and reject completed torrent hashes before downloader submission.
2026-10-13 17:05:57 +08:00
jxxghp
86c7fccfd5
feat(subscribe): persist business activity with scoped details
2026-10-12 23:43:01 +08:00
jxxghp
6ef8408f43
fix(bangumi): merge tmdb classification metadata for aux source ( #6968 )
...
Bangumi 等主识别源缺少 original_language/origin_country 标准字段,引用这些字段的分类规则整体失效并落入未分类;TMDB 辅助补充已有 genre_ids 合并,补齐语言与国家标准字段,仅填充主来源缺失值。
2026-10-12 17:49:40 +08:00
jxxghp
de7726c6fc
fix(subscribe): reconcile partial library progress ( #6966 )
2026-10-12 13:38:24 +08:00
jxxghp
6f9c0756c1
fix(download): reuse torrent content before resolving tickets ( #6967 )
2026-10-12 13:34:41 +08:00
jxxghp
391f55df40
feat(subscribe): add isolated execution logs with authorized streaming ( #6963 )
2026-10-11 22:18:37 +08:00
jxxghp
4059877088
fix(search): preserve full collection for whole-season subscriptions
...
Retain episode targets while keeping the whole-season barrier across paging and checkpoint recovery. Full scans no longer stop at the latest episode observed on early pages.
2026-10-11 07:53:45 +08:00
jxxghp
0cbdbf9b1d
fix(search): cap paging and stop unmatched IMDb sources
2026-10-11 07:46:38 +08:00
jxxghp
63055f84d1
fix(download): recover omitted site credentials for torrent fetch
2026-10-11 07:36:54 +08:00
InfinityPacer
9117ebd69c
fix(download): let labelled full-season packs compete in whole-season phase
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 01:25:46 +08:00
InfinityPacer
338687bee8
fix(download): treat blank save path as default directory
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-10 23:48:50 +08:00
jxxghp
dd90883c5d
fix(torrent): respect tracker rate limits and quota cooldowns
...
Recognize explicit JSON rate limits before torrent parsing and short retries. Preserve per-call quota errors through download preparation so subscription cooldowns cover the tracker window.
Refs #6950
2026-10-10 23:34:35 +08:00
InfinityPacer
3faa49fd7a
fix(workflow): keep torrent contexts usable across persistence and filtering
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-10 18:44:19 +08:00
jxxghp
bb29451222
fix: isolate unhandled durable transfer failures
2026-10-10 12:17:07 +08:00
jxxghp
8811825ee8
fix(search): separate retry timestamp types
2026-10-10 07:04:32 +08:00
jxxghp
828f66e771
fix(search): ignore expired scan retry times
2026-10-10 06:59:33 +08:00
jxxghp
1ed458eda7
fix(download): remove deleted source from matching downloader
2026-10-10 06:58:04 +08:00
jxxghp
e9f0c693e2
fix(torrent): retry transient downloads and shorten empty-content cooldown
2026-10-10 00:05:22 +08:00
InfinityPacer
6034dcc880
fix(workflow): drop shared context on fork and legacy pickle context
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-09 13:56:35 +08:00
jxxghp
54f2daba06
fix(subscribe): stop automatic searches and downloads when paused
2026-10-09 12:00:18 +08:00
jxxghp
35d5cac84f
fix(subscribe): validate TMDB conversion and sync architecture facts
2026-10-08 21:22:17 +08:00
YuHoYe
d42c217286
fix(subscribe): convert douban/bangumi identity to TMDB on subscribe
...
识别源为 TMDB 时,手动订阅电视剧或电影若传入豆瓣、Bangumi 等非 TMDB 身份,
订阅链现在会先通过 convert_media_identity 换成 TMDB 整剧身份,再按 TMDB 识别,
与豆瓣想看、豆瓣榜单插件的订阅口径保持一致。
非 TMDB 来源把每一季当作独立条目,标题和年份都是季级的。此前手动订阅只拆出季号、
仍以季条目作为主身份,下载记录与整理随之按季标题生成独立剧集目录,媒体库里出现
多部同名剧。转换失败时沿用原身份,识别源不是 TMDB 时不做转换。
2026-10-08 20:22:02 +08:00
jxxghp
70811b551e
feat(music): optionally simplify written lyrics
2026-10-08 18:40:16 +08:00
WenGuoyin
e19076f482
feat(indexer): 适配 Milkie 站点搜索与连通测试
...
- 新增 MilkieSpider:基于 milkie.cc JSON API(x-milkie-auth 认证)的
种子搜索与浏览,支持关键字分类收敛、服务端翻页、免费因子与
媒体类型映射,下载链接按 API Key URL 编码拼接
- 注册 SPIDER_PARSER_CLASSES 与专用搜索参数投影
- SiteChain 新增 milkie.cc 连通性测试,401/403 判定 API Key 失效
- 补充 MilkieSpider 单元测试与同步异步参数一致性用例,同步依赖基线
2026-10-08 17:18:10 +08:00
jxxghp
11303a8e88
fix(transfer): suppress completion events without target items
2026-10-08 13:42:08 +08:00
jxxghp
f0b34cf9f5
fix(search): restore concurrent progressive manual paging
2026-10-08 11:57:10 +08:00
jxxghp
32d37fa8b4
feat(music): preserve per-task CUE recognition policy
2026-10-08 08:51:01 +08:00
ChantXu64
e5e2558585
feat(search): 订阅补全逐页搜索、断点续搜与资源页手动分页 ( #6907 )
2026-10-07 14:40:55 +08:00
jxxghp
fb652c74f4
fix(music): 支持关闭 CUE 识别整理分轨音频
2026-10-05 17:15:14 +08:00
jxxghp
e21d68496f
fix(torrents): use incremental cache for M-Team by default
...
Refs #6878
2026-10-04 10:46:49 +08:00
jxxghp
823423b2c9
fix(download): refresh expired signed torrent links
...
Refs #6878
2026-10-04 10:27:28 +08:00
jxxghp
754da97d97
fix(music): apply simplified metadata to manual transfers
...
Normalize album details and final music template fields while preserving local edition evidence, multi-artist credits and source objects. Refs #6870 .
2026-10-04 08:47:15 +08:00
InfinityPacer
6e295d5d2f
fix(subscribe): preserve accepted searches for paused subscriptions
2026-10-04 00:22:57 +08:00
Cat
2a31b51687
fix(transfer): 整理规划的业务拒绝不再按系统错误告警 ( #6868 )
2026-10-03 23:03:15 +08:00
jxxghp
118e2ef933
fix(notification): align scoped recipient routing
2026-10-03 01:00:21 +08:00
jxxghp
b33053e10f
Merge remote-tracking branch 'origin/v3' into codex/optimize-pr-6849
...
# Conflicts:
# docs/architecture-overview.md
# docs/refactor/optimization-checklist.md
# tests/fixtures/architecture/dependency-baseline.json
2026-10-02 22:06:27 +08:00
jxxghp
e14e49eb47
fix(system): type release tags and record reduced mypy debt
2026-10-02 14:07:18 +08:00