InfinityPacer
c86307ddd1
fix: 收口监控测试线程并修复整理历史 lint ( #6304 )
2026-08-13 19:26:05 +08:00
Aqr-K
a2e70b443d
fix(monitor,transfer): 修复 FUSE 挂载无响应导致的监控冻死、整理链锁死与漏件 ( #6276 )
...
* wip(v3): 移植监控与整理韧性修复到 v3 基线
包含:监控看门狗隔离/挂载探测、整理队列持久化、文件系统子进程代理、
写入原子化。迁移重挂到 v3 链 8a4c7e1d2f90 -> 7f5c1d2e3a4b -> e3d9f4b7c806。
tmdb 相关测试尚未通过,待定位。
* fix(v3): 修正移植引入的 16 项测试失败
- poller.py:合并时我方保留的行仍用旧变量名 merged_snapshot,而 v3 已统一
改名为 current_snapshot,导致 NameError 被外层 except 吞掉、快照从未保存
- smb.py:采纳 f-string 拆分写法,恢复 Python 3.11 可解析
- dispatcher 测试:历史查重由 _should_skip_by_history 统一承担,mock 点随之调整
- tmdb 缓存测试:补充 v3 新增的 media_source/media_id 字段
- tmdb 重试测试:为 fake 补充 match_multi/async_match_multi
尚余 3 项与 v3 识别流程的连接失败处理有关,待单独判断。
* fix(v3): 测试适配 v3 的 media_source/media_id 重构
v3 将媒体标识从 tmdbid 统一重构为 media_source + media_id,recognize_media
的 tmdbid 参数已被 **kwargs 静默吞掉——传了也不生效,流程会误降级到名称搜索。
tmdb 重试用例改用新参数后恢复正确路径。
同时修正 fake 的 match_multi 语义:真实实现(tmdbapi.match_multi)吞掉所有
异常并返回 None,连接失败与「未找到」在该路径上本就不可区分,fake 需保持一致。
至此移植引入的 19 项失败全部清零。
---------
Co-authored-by: Aqr-K <Aqr-K@users.noreply.github.com >
2026-08-13 08:19:54 +08:00
jxxghp
ca32922a7f
refactor(media): unify media identity and chain responsibilities
2026-08-12 18:31:09 +08:00
jxxghp
8bf2f601a6
refactor(media): unify source identity and music browsing
2026-08-12 12:56:40 +08:00
jxxghp
97dba2a8ae
feat: unify media recognition and music lifecycle
2026-08-12 06:51:58 +08:00
jxxghp
3f1b0cdb05
feat(music): 支持多源识别与元数据刮削
2026-08-11 23:34:00 +08:00
jxxghp
7597c21872
feat(music): 自动整理时媒体类型判别
2026-08-11 19:08:05 +08:00
jxxghp
07ea99442e
feat(music): 增强无标签音频识别,支持文件名/目录解析与专辑级匹配
...
- 新增 MusicNameParser:剥离曲序/碟号前缀、拆分歌手与曲名、解析专辑目录名(歌手/专辑/年份/音质)和 CD1 等碟片目录
- MetaInfoPath 与 MusicChain.read_path_meta 接入路径上下文,WAV 及标签不全的 FLAC/MP3 可补齐识别线索
- MusicBrainz 新增 match_music_album:按专辑名/歌手/曲名搜索候选发行版本,用曲目数、总时长、逐曲时长和曲名重合度打分对位
- MusicChain 新增 recognize_album_directory 目录级批量识别(按目录缓存),单曲识别未命中时自动兜底
- transfer 整理链路接入专辑匹配,命中后回填曲目身份用于重命名与刮削
2026-08-10 20:11:23 +08:00
jxxghp
393a4ca4e2
feat(music): complete album subscription workflow
2026-08-09 20:43:33 +08:00
jxxghp
c312c5c0e6
Fix 修复音乐整理
2026-08-09 14:32:25 +08:00
jxxghp
372b9bc60f
feat: 优先使用当前文件标签作为曲目标题,避免重名问题
2026-08-09 11:56:37 +08:00
jxxghp
60aa762ca1
feat: 音乐识别与刮削统一入口整合
...
- 音乐识别统一走 recognize_media,移除 MusicChain.recognize/async_recognize 及 /music/search 独立端点
- 音乐刮削收拢到 MediaChain.scrape_music_metadata,消除 MusicChain 对 MediaChain 的嵌套引用
- MetaInfo/MetaInfoPath 增加 force_video 参数,影视附加音轨保留季集归属
- 整理、订阅、搜索、API 层音乐识别入口全部统一
2026-08-09 10:06:54 +08:00
jxxghp
7797d34c48
feat: 识别文件类型:音乐
2026-08-08 23:38:34 +08:00
jxxghp
05d15a04f5
feat(v3): add music automation workflow
2026-08-07 21:50:22 +08:00
jxxghp
759b9e47eb
fix(transfer): expire stale jobs and deduplicate diagnostics
2026-08-07 12:44:04 +08:00
jxxghp
c976741574
feat(transfer): control mounted directory cleanup
2026-07-30 17:45:13 +08:00
Aqr-K
cf80b551f9
fix(monitor): 目录监控自愈、快照语义修正与覆盖保护闭环 ( #6210 )
2026-07-30 06:53:52 +08:00
jxxghp
cae28d8c03
fix(transfer): 支持显式重新整理历史记录
2026-07-26 08:59:57 +08:00
jxxghp
ff9ba79b60
Codex/fix season subscription poster ( #6185 )
2026-07-25 08:07:08 +08:00
jxxghp
3b709b7f2e
feat: unify media source identity flow ( #6129 )
2026-07-21 20:20:09 +08:00
jxxghp
e3f80af74f
feat: expand metadata sources and media server sync ( #6129 )
2026-07-21 11:34:18 +08:00
jxxghp
ed92be08af
fix(transfer): support nested download categories ( #6156 )
2026-07-20 16:14:17 +08:00
freeman
4f2935c85e
fix(transfer): 种子未下载完成时不回写已整理标签 ( #6106 )
2026-07-13 12:05:01 +08:00
Album
6c3c5e042d
修复手动整理按集数定位模板过滤 ( #6043 )
2026-07-03 07:55:59 +08:00
jxxghp
6916ee0988
修复电影合集整理识别错误
2026-07-02 08:06:44 +08:00
Pollo3470
302d8bbf5c
fix(transfer): 修复订阅自定义识别词在整理时失效 ( #6018 )
2026-06-29 15:49:02 +08:00
jxxghp
494f809ef0
Refine transfer history batch actions
2026-06-29 07:07:33 +08:00
jxxghp
27e1f634cb
fix: add total episodes to transfer notifications
2026-06-27 22:45:17 +08:00
jxxghp
d7aa66853a
fix: 优化同名字幕附加整理
2026-06-23 12:07:47 +08:00
jxxghp
e1ba9a2c97
feat: conditionally save message history based on save_history flag
2026-06-17 21:00:40 +08:00
jxxghp
db3ad91408
fix: improve manual transfer recognition preview
2026-05-27 11:01:27 +08:00
Album
2eb7f57a4c
feat: 支持多文件手动整理与集数定位模板推荐 ( #5820 )
2026-05-23 09:23:50 +08:00
jxxghp
2109d323ae
refactor: merge episode format helper
2026-05-20 22:45:00 +08:00
jxxghp
617692616c
fix: build complete transfer result at source
2026-05-20 22:09:57 +08:00
Album
d37954e6bc
feat: 强化集数定位模板智能自动生成 ( #5801 )
2026-05-20 21:41:35 +08:00
jxxghp
0fb9d18b30
fix: keep transfer event normalization in domain
2026-05-20 21:03:33 +08:00
jxxghp
e00aa42f94
fix: prevent duplicate transfer uploads
2026-05-20 16:39:07 +08:00
jxxghp
3ec0964a01
fix: handle OpenList delayed transfer metadata
2026-05-20 13:08:45 +08:00
Album
9e9c398177
feat: 新增集数定位模板生成接口 ( #5785 )
2026-05-19 07:18:28 +08:00
jxxghp
092666f9d2
fix: avoid double episode offset in manual transfer
2026-05-17 08:59:17 +08:00
jxxghp
f50773711e
feat: add support for syncing matching subtitle and audio files with main media during transfer
2026-05-14 21:12:02 +08:00
jxxghp
0f3a4e4c15
refactor: rely on transfer chain invariants
2026-05-14 07:55:33 +08:00
jxxghp
f4423e121e
fix: aggregate metadata scrape events
2026-05-14 07:38:06 +08:00
jxxghp
f0bc1bd681
fix: prevent storage operations in preview mode and add tests for transfer preview logic
2026-05-13 13:39:57 +08:00
album
05b34b9c26
feat(transfer): 增加手动整理预览模式(preview mode)
...
- ManualTransferItem/TransferTask 增加 preview 字段,支持同一接口双模式
- /api/v1/transfer/manual 透传 preview,预览时返回结构化结果不落盘
- ChainBase.transfer 增加 preview 参数并透传到 run_module
- TransferChain.do_transfer 预览分支复用完整命名/覆盖判定逻辑(dry-run)
- TransferChain.do_transfer 预览结束后显式 finish_task/fail_task,避免任务残留 running 状态导致重复预览失败
- TransHandler.transfer_media 预览分支跳过实际 copy/move/link/delete,仅返回目标路径
- FileManagerModule.transfer 透传 preview 参数
- 修复 /manual 失败分支 dict 类型导致 Response.message 校验错误
- 兼容性:preview 字段有默认值,旧客户端不传参时行为不变
2026-05-12 10:14:58 +08:00
jxxghp
adb7aa6aa9
fix: prevent repeated scans after history-based exits
...
Only mark downloader tasks as organized after a transfer history record exists, including existing-history skips and unrecognized media failures.
2026-05-10 10:25:39 +08:00
jxxghp
4d132c424a
fix: avoid duplicate image fetch in transfer
...
Keep transfer recognition results ready for scraping without fetching images twice on the same path. Also ensure redo-by-path transfer recognition still populates image data before metadata scraping.
2026-05-10 08:22:27 +08:00
jxxghp
c52327c248
fix: only fetch images for scrape flows
...
Default title and path recognition to skip image fetching, while keeping scrape entrypoints and transfer-to-scrape paths populated with image data. This preserves lightweight recognition behavior without breaking metadata scraping.
2026-05-10 08:14:08 +08:00
jxxghp
1d97f2e043
fix: align media recognition fallback and shared reporting
...
Route title and path lookups through the fallback-aware entrypoints so auxiliary matches can reuse pre-assist keywords without forcing image fetches in lightweight flows. Also reduce noisy agent shutdown logging during cleanup.
2026-05-10 07:54:55 +08:00
jxxghp
6d7b0733af
fix(transfer): avoid polluted history fallback at shared roots
...
Parent-path fallback should stop at shared download roots so an old root-level download cannot hijack unrelated manual transfers. Keep exact DownloadFiles matches allowed at the shared root to preserve valid no-subfolder lookups.
Closes #5716
Regression from afcd895f52
Follow-up to #5702
2026-05-07 13:01:20 +08:00