Skip to content

fix(subscribeassistantenhanced): align subscription rebuild lifecycle - #355

Merged
InfinityPacer merged 1 commit into
mainfrom
codex/fix/sae-subscribe-rebuild-boundary
Jul 20, 2026
Merged

fix(subscribeassistantenhanced): align subscription rebuild lifecycle#355
InfinityPacer merged 1 commit into
mainfrom
codex/fix/sae-subscribe-rebuild-boundary

Conversation

@InfinityPacer

Copy link
Copy Markdown
Owner

问题背景

完成订阅后检测到新增集数时,SAE 会根据完成快照重新建立追更订阅。现有实现存在三个边界问题:

  • 完成快照只保存了部分订阅配置,质量、分辨率、包含/排除词、下载器和自定义识别配置等用户设置可能在重建时丢失。
  • 增集重建直接写入订阅表,既没有明确写入本轮确认的总集数和缺失集数,也没有经过主程序当前默认订阅规则;同时插件需要自行补发 SubscribeAdded 事件。
  • 分集转全集时,历史写入、活动订阅删除和插件任务清理共用一个异常边界。删除失败会按媒体和季号回滚“最新历史”,并发时可能误删其他记录;任务清理失败也会阻断全集订阅创建。

调整说明

  • 补全完成快照中的媒体专属订阅配置;订阅模式不进入快照,由重建时的当前默认电视剧订阅规则决定。
  • 增集重建改用 SubscribeChain.add(message=False),在默认规则上合并快照配置,并明确设置新增目标范围、总集数、缺失集数和自动总集数来源。
  • 沿用现有订阅分流:普通订阅和分集洗版继续自行追更;存在旧全集洗版时删除后重新建立追更订阅;没有活动订阅时直接重建。
  • 由主程序订阅链发送唯一的 SubscribeAdded 事件,SAE 不再重复补发;关闭主程序成功通知,保留 SAE 的增集重建通知。
  • 拆分历史写入、活动订阅删除和任务清理的异常处理;移除无法精确定位的历史回滚,任务清理失败只记录警告并继续转换。

验证

  • SAE 测试:1317 passed
  • 插件仓全量测试:v1 33 passed,v2 2175 passed
  • 插件覆盖率门禁:line 93.38%,method 98.24%,changed-line 100% (19/19)
  • compileall、版本门禁、JSON 校验和 git diff --check 通过

交付范围

本 PR 为 PR-only,不包含插件版本升级、tag 或 GitHub Release。

@InfinityPacer
InfinityPacer enabled auto-merge (squash) July 20, 2026 09:38
@InfinityPacer
InfinityPacer merged commit 597b84b into main Jul 20, 2026
3 checks passed
@InfinityPacer
InfinityPacer deleted the codex/fix/sae-subscribe-rebuild-boundary branch July 20, 2026 09:40
MichelJay pushed a commit to MichelJay/MoviePilot-Plugins that referenced this pull request Jul 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant