fix(search): restore complete packs before initial parts

This commit is contained in:
jxxghp
2026-10-22 07:36:18 +08:00
parent 2393f198af
commit 9d534d1954
5 changed files with 287 additions and 13 deletions

View File

@@ -147,6 +147,11 @@ with patch.object(SomeModule, "fetch", new=AsyncMock(return_value=FAKE)):
回退。已有下载记录或媒体库已有目标集时沿用补集行为,提交前重新检查当前订阅;不会开启洗版
或写入洗版优先级。测试覆盖显式缺集列表、后页整包、不完整包和搜索期间进度变化,均隔离外部服务。
整包优先也约束候选分批:已收集的整包即使排序低于分集、检查点恢复后缺少临时下载地址,
也须先恢复地址并共同进入下载选择;多个整包不完整、下载失败或恢复后已不可用时才回退分集。
`tests/test_search_scan.py` 与 `tests/test_subscribe_paged_search.py` 在离线边界验证恢复、过滤和
实际下载提交的先后顺序,同时保留普通补集按可用前缀提交的行为。
全集洗版(`best_version=1`、`best_version_full=1`)的主动搜索始终使用洗版规则组,
包括尚无下载记录或仍有缺集的订阅;未通过洗版规则的整包不会回落到普通订阅规则组。
订阅显式指定的规则组仍优先。分集洗版中从未下载的剧集继续使用普通订阅规则。