diff --git a/plugins.v2/subscribeassistantenhanced/docs/architecture.md b/plugins.v2/subscribeassistantenhanced/docs/architecture.md index 7d07f7bb..3484a773 100644 --- a/plugins.v2/subscribeassistantenhanced/docs/architecture.md +++ b/plugins.v2/subscribeassistantenhanced/docs/architecture.md @@ -12,6 +12,37 @@ - writer 只维护自己负责的状态事实,不跨领域推导业务流程。 - 证据、诊断、审计和快照模块只提供输入事实,不直接拥有订阅生命周期状态。 +## 订阅管理策略 + +增强版默认管理所有订阅,各业务域是否运行仍由现有全局开关决定。订阅管理策略只描述例外, +用于缩小管理范围或覆盖插件创建洗版订阅时的有限参数;策略不得重新启用全局已经关闭的能力。 + +策略按用户配置顺序从上到下匹配,第一条命中后停止,未命中时继承全局配置。首期匹配条件限定为 +稳定、可解释的订阅事实:媒体身份、媒体类型、季、剧集组、订阅用户、媒体类别和订阅模式。 +单条订阅规则不能只保存数据库 ID,因为分集转全集、完成后重建等流程会创建新的订阅记录; +订阅身份应由媒体来源 ID、媒体类型、季和剧集组共同确定。 + +媒体类别优先使用订阅显式设置的 `media_category`,没有显式值时使用识别结果中的类别。 +类别无法解析时按未知类别处理并输出可诊断结果,不能假定命中某条类别规则。 + +首期动作限定为: + +- 完全排除订阅,不再进入增强版的业务处理; +- 排除指定业务域,包括待定、暂停、完结守卫、订阅补全、洗版、下载管理、订阅清理和识别增强; +- 覆盖插件创建的全集洗版订阅保存目录,目录只能选择主程序已经配置的下载目录根路径。 + +保存目录覆盖不负责拼接媒体类型或类别目录。主程序负责识别精确命中的下载目录根路径,并按该目录 +已有的“按类型分类”和“按类别分类”设置生成最终路径;用户指定根路径下的自定义子目录时, +主程序必须将其视为完整路径,不能再次分类。 + +策略解析由纯逻辑的统一组件负责,返回命中规则、允许管理的业务域和有限覆盖项。事件入口、定时巡检 +和洗版编排必须复用同一解析结果,禁止在各领域散落用户名、类别或订阅 ID 判断。配置界面应提供规则 +排序、当前命中订阅预览以及订阅、类别和下载目录的受控选择,不提供任意脚本或通用字段修改能力。 + +订阅从受管理变为不受管理时,需要执行一次状态收敛:释放增强版持有的待定和暂停归属,移除插件 +下载监控与观察状态,但不得恢复外部持有的暂停状态,也不得删除下载器任务、文件、种子或整理记录。 +分集转全集或完成后重建产生新订阅后,需要按稳定订阅身份重新解析策略。 + ## 总体结构 ```mermaid