From 9856ed8d5e44022e76975d098facc16ed93b73dc Mon Sep 17 00:00:00 2001 From: root Date: Fri, 2 Oct 2026 18:22:37 +0800 Subject: [PATCH] =?UTF-8?q?docs(porting):=20=E8=AE=A2=E9=98=85=20MP=20?= =?UTF-8?q?=E5=9C=BA=E6=99=AF=E5=AF=B9=E7=85=A7(=E7=AC=AC=207=20=E8=8A=82,?= =?UTF-8?q?=E5=BE=85=E8=AE=A8=E8=AE=BA)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- docs/porting/moviepilot-v3-comparison.md | 37 ++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/docs/porting/moviepilot-v3-comparison.md b/docs/porting/moviepilot-v3-comparison.md index 415b4aff..84cd5882 100644 --- a/docs/porting/moviepilot-v3-comparison.md +++ b/docs/porting/moviepilot-v3-comparison.md @@ -31,8 +31,8 @@ MP 是优先采用的业务参考;用户已确认尽量复用其成熟业务 | 04 | 整理计划、替换、路径与记录 | 冻结目标、跨卷、字幕随行、替换旧版本、记录删除;R07、R15、R23 | 待核对;01 仅覆盖恢复机制 | | 05 | 刮削与媒体文件布局 | NFO/图片、缺失与覆盖、部分失败、任意目录、自动触发;R10、R11 | 待核对;01 仅覆盖刮削任务入队 | | 06 | 识别、身份与映射治理 | 本地身份、人工锁、详情 ID、跨季、元数据滞后、错误关联;R03、R08、R09、R22 | 待核对 | -| 07 | 订阅完成条件与多版本 | 追更、综艺正片/上下段、整季包、独立双版本;R02、R04、R05 | 待核对 | -| 08 | 规则、选片、升级与换源 | 硬条件、优先级、偏好学习、替换计划、授权边界;R16、R20、R27 | 待核对 | +| 07 | 订阅完成条件与多版本 | 追更、综艺正片/上下段、整季包、独立双版本;R02、R04、R05 | 场景对照完成,待讨论,见第 7 节 | +| 08 | 规则、选片、升级与换源 | 硬条件、优先级、偏好学习、替换计划、授权边界;R16、R20、R27 | 选片与洗版部分并入第 7 节;换源与授权边界待核对 | | 09 | RSS、站点快照、搜索与详情 | 去重补漏、缓存新鲜度、限流、文件清单、四站证据;R01、R25、R30 | 待核对 | | 10 | 浏览器辅助与人工接管 | HTTP/浏览器切换、挑战升级、同会话、交还与重启;R06、R31、R32 | 待核对 | | 11 | 旧库接管、库存与媒体服务器 | 初次扫描、影响预览、分范围纳管、查询 unknown、资产对账;R09、R18、R24 | 待核对 | @@ -308,3 +308,36 @@ MP 手动添加入口识别失败时返回 `requires_confirmation`;前端 `Add 本项目既有「刮削」可就地写 NFO/图片,`addToLibrary` 仅创建作品条目,不登记视频位置、资产及季集覆盖;保留原文件名选项仍会搬运到模板目录。新增共用弹窗「原地入库」,保留路径和名称,复用识别、预览、队列、逐文件结果与资产登记事务;记录方式为 `in_place`,迁移 `0061` 扩展两个枚举约束。媒体库内选择默认原地入库,下载缓存继续原复制/移动。原地模式不使用分类搬运目标和命名模板、不建立路径绑定,配对字幕一并登记;可选刮削只针对本次成功文件。 这是为本项目资产管理补齐的行为,参考 MP 就地刮削语义,并非声称 MP 有同名模式。未改动自动接管配置或加入链接方式。实现与验证边界见发布记录和整理手册。 + +## 7 订阅:追更、选片、洗版与完成(待讨论,2026-10-02) + +MP 依据 §1 固定提交 `app/chain/subscribe/*`,旧版逐函数记录见 [订阅移植对照](moviepilot-subscribe.md)(基线 `e6820a8`,本轮抽查完成判定、整理后事件、状态机未见行为变化)。本项目依据 `acquisition-organize/services/{subscriptions,acquisition,coverage}.ts`、`contracts/src/policy.ts`、订阅表单。测试环境现有 5 条订阅均已取消,收录版本(Slot)0 个:多版本相关机制尚无实际使用记录。 + +### 7.1 场景对照 + +| # | 场景 | MP | 本项目当前 | 差异与建议 | +| --- | --- | --- | --- | --- | +| 1 | 订阅对象 | 一条订阅 = 一个作品的一季;过滤条件(质量、分辨率、特效、包含/排除、站点、规则组、洗版开关)直接是订阅字段 | 订阅 → 一个或多个「收录版本」(Slot),硬条件/软偏好/升级阈值/完成条件放在 Slot;订阅表单约 30 个字段 | **建议简化**:默认一条订阅只有一个隐式收录版本,表单回到 MP 那组字段;多版本作为高级选项折叠 | +| 2 | 新建订阅 | 识别失败不按标题兜底;总集数为 0 拒绝创建;建好后 5 分钟内搜一次 | 允许作品未建档(`titleQuery`)、总集数未知照样建(pending 不可完成);建好后排一次搜索 | 保留「总集数未知也能建」(短剧、平台剧常见);其余一致 | +| 3 | 追更来源 | 默认靠站点首页/RSS 刷新匹配(每天 32 个随机时刻或 RSS 每 30 分钟);定时主动搜索**默认关闭** | 新资源识别后逐个评估所有收录版本;另有按订阅的周期主动搜索(缺省 24 小时,可设 0 关闭) | 机制等价;**建议主动搜索默认关**,靠 RSS/站点快照,减少站点请求,需要时单个订阅打开 | +| 4 | 选片与优先级 | 规则组分层 `A > B > C`,命中第几层得 pri 100、99…,不命中丢弃;订阅字段的包含/排除、质量、分辨率是硬过滤 | 规则组 + 收录版本硬条件 + 软偏好排序;`resolution / source / effect` 存进订阅自己的收录版本 | 能力等价;问题在入口分散(订阅字段、收录版本、规则组三处),并入第 1 项一起收敛 | +| 5 | 同一集多个资源同时到 | 第一个成功提交下载即写 note,其余按"已下载"跳过 | Slot 行锁内复核在途单元,冲突的资源记「延后」,Slot 空出后重评 | 我们多了延后/重评调度。**建议讨论**:普通订阅是否直接跳过(MP 做法),只在洗版时才需要重评 | +| 6 | 整季包与单集 | 整季缺失找单季包,开种子核对集数;从整季包按文件选集下载(qB/TR) | 季包总集数已知按缺集展开,未知用整季通配预留;提交后开文件清单按缺集选文件 | 基本一致,保留 | +| 7 | 洗版 | 三种:电影洗版、分集洗版、全集洗版;目标 = 拿到规则组最高档(pri 100),到了就完成 | 收录版本的升级阈值 + 规则组升级链;手动下载另有一次性洗版(已定) | **建议对齐 MP 三种模式**作为订阅上的一个选项,「到最高档即完成」 | +| 8 | 多版本补全 | 无(一条订阅一个目标) | 自动补全其他收录版本 + 按订阅的每日字节/单元预算 | MP 没有、实际也未用过。**建议隐藏**,默认关;先不删代码 | +| 9 | 完成口径 | 普通订阅:下载提交成功即记事实,目标范围都有了就完成;P 状态不完成 | 已按 MP 口径(v0.3.10):下载器接收即计入;pending 不完成 | 一致 | +| 10 | 完成之后 | 写历史并**删除订阅**;重新订阅从历史新建 | 状态改 completed、写历史、**行保留**可改回 active | 我们的做法更省事,**建议保留** | +| 11 | 后续季 | 不追:一季一条订阅,新季要重新订阅 | 「持续后续季」:同一订阅自动追后面的季 | MP 没有。**建议讨论**是否保留:保留则需要明确"新季何时出现、何时算完成" | +| 12 | 订阅方式与优先级 | 无「一次性/持续」之分;无优先级档 | `once / continuous` 两种方式;即时 > 追更 > 新作品 > 升级四档优先级 | 优先级档只影响下载队列先后。**建议**:方式与第 11 项合并成一个"只这一季/持续追后续季";优先级默认隐藏 | +| 13 | 状态 | N 新建 → R 订阅中;P 待定(可搜不可完成);S 暂停 | active/pending/paused/completed/cancelled | 一致,保留 | +| 14 | 总集数变化 | 6 小时刷新;变大继续缺集;变小不低于已有最高集;全集洗版基线清零 | 元数据刷新改季总集数;回退不低于已覆盖最高集 | 一致,保留 | +| 15 | 分享、Follow、Seerr | 有 | 无 | 不做(团队内部用) | + +### 7.2 建议的讨论顺序 + +1. 第 1、4、8、12 项:订阅表单和收录版本怎么收敛,这决定后面几项的界面。 +2. 第 7 项:洗版是否改成 MP 三种模式。 +3. 第 5、11 项:延后重评、持续后续季是否保留。 +4. 第 3 项:主动搜索默认开关。 + +以上均为对照与建议,尚未授权实施。