# 番剧管理设置 ## WebUI 配置 ![manager](/image/config/manager.png){width=700}{class=ab-shadow-card} - **启用**:启用番剧管理器。关闭后,重命名与整理相关设置不会生效。 - **重命名方式**: - `pn`:保留更多发布标题信息,使用 `种子标题 S0XE0X` 风格。 - `advance`:使用官方标题与标准季集格式。 - `none`:不重命名文件。 - `template`:按自定义模板命名,见下文[模板重命名](#模板重命名)。 - `pn`、`advance`、`template` 由内置插件「重命名」(`rename`)提供,默认启用;在 **设置 → 插件** 中停用它后,所有番剧按 `none` 处理。其它插件也可以提供重命名方式,启用后出现在下拉框中。 - **番剧补全**:检测当季缺失集数并尝试补全下载。 - **添加组标签**:为下载器中的任务添加字幕组相关标签。 - **删除坏种**:移除下载器中状态异常的种子。 - **修订版冲突处理**:更高修订版的种子指向已有剧集时,选择「保留现有文件」或「替换为更高修订版」。启用替换后,仅在更高修订版成功就位后删除旧种子及其数据。 - **记录未匹配种子**:把当前没有匹配到规则的种子记录为“未匹配种子”。关闭后,后续新增规则可以立即接住 RSS 中仍存在的旧条目,但这些旧条目会在每轮 RSS 刷新时重新尝试匹配。 - [关于文件路径][1] - [关于重命名][2] ## `config.json` 配置选项 配置节:`bangumi_manage` | 参数 | 说明 | 类型 | WebUI 选项 | 默认值 | | --- | --- | --- | --- | --- | | `enable` | 启用番剧管理器 | 布尔值 | 启用 | `true` | | `eps_complete` | 启用剧集补全 | 布尔值 | 番剧补全 | `false` | | `group_tag` | 添加字幕组标签 | 布尔值 | 添加组标签 | `false` | | `remove_bad_torrent` | 删除错误种子 | 布尔值 | 删除坏种 | `false` | | `track_orphans` | 记录未匹配种子 | 布尔值 | 记录未匹配种子 | `true` | 重命名方式与版本冲突策略是 Provider 选择,保存在 `plugins.slots`:`rename_strategy`(重命名方式,默认 `pn`)与 `conflict_policy`(`hold` / `replace`,默认 `hold`)。3.3 的 `bangumi_manage.rename_method` 与 `revision_conflict_policy` 在升级到 4.0 后第一次启动时自动迁移。完整说明见 [插件设置](/config/plugins#slots)。 ## 模板重命名 选择 `template` 后,文件名由内置插件 `rename` 的模板生成。在 **设置 → 插件 → 重命名** 中修改「文件名模板」,默认值为: ::: v-pre ``` {{ title }} S{{ season|pad(2) }}E{{ episode|pad(2) }} ``` 默认模板对普通剧集与 `pn` 的结果相同;剧场版 `pn` 不加 `SxxExx`,默认模板会加。模板使用 [Jinja2](https://jinja.palletsprojects.com/) 语法(沙箱模式),可用变量: | 变量 | 含义 | 示例 | | --- | --- | --- | | `title` | 从文件名解析出的标题 | `葬送的芙莉莲` | | `bangumi_name` | 番剧文件夹名 | `葬送的芙莉莲 (2023)` | | `season` | 季度(取自 Season 文件夹,已含季度偏移) | `1` | | `episode` | 集数(已含集数偏移,半集保留小数) | `5`、`12.5` | | `episode_type` | `episode` / `movie` / `special` | `episode` | | `group` | 字幕组,可能为空 | `ANi` | | `kind` | `media`(正片)或 `subtitle`(字幕) | `media` | | `language` | 字幕语言,正片为空 | `zh` | `pad(n)` 过滤器把数字的整数部分补零到 n 位,小数保留:`{{ episode|pad(3) }}` 得到 `005`,`{{ 12.5|pad(2) }}` 得到 `12.5`。 - 模板只生成文件名主体,扩展名自动追加;字幕追加 `.语言.扩展名`,如 `.zh.ass`。 - 保存时会用示例文件试渲染一次:语法错误、使用不存在的变量或渲染结果不合法的模板直接被拒绝。 - 运行时某个文件渲染失败、结果为空或含 `/`、`\`:该文件**保留原名**并发送「文件未重命名」通知,种子不打 `ab:renamed` 标签,修正模板后下一轮自动重试。不会退回 `pn`。 示例:`[{{ group }}] {{ bangumi_name }} - {{ episode|pad(2) }}` → `[ANi] 葬送的芙莉莲 (2023) - 05.mkv` ::: ::: warning 更换重命名方式(包括修改模板)只影响之后整理的种子;已整理完成(带 `ab:renamed` 标签)的种子不会被重新命名。 ::: ## 硬链接到媒体库 内置插件「硬链接到媒体库」(`hardlink`)**默认停用**,在 **设置 → 插件** 中启用。种子整理完成后,它把正片与字幕链接到媒体库目录;下载目录保持原样继续做种。 | 选项 | 说明 | 默认值 | | --- | --- | --- | | `source_root` | 下载根目录(AB 看到的绝对路径)。媒体库保持与它相同的目录结构 | 无,必填 | | `library_root` | 媒体库目录(绝对路径),不能位于 `source_root` 内 | 无,必填 | | `path_map` | 路径映射列表 `[{downloader, from, to}]`:把下载器 `downloader`(实例 id,默认 `default`)看到的路径前缀 `from` 换成 AB 看到的路径 `to`;按最长前缀匹配,未匹配的路径原样使用 | `[]` | | `cross_device` | 硬链接遇到跨文件系统时:`copy` 复制文件、`symlink` 创建软链接、`skip` 跳过并通知 | `copy` | - 媒体库中已有同名文件、但不是本插件创建的:跳过,**绝不覆盖**,并发送「硬链接未完成」通知。 - 版本升级(新版本种子替换旧种子,文件名不变)后,本插件之前创建的链接会被原子替换为指向新文件的链接。 - 删除种子不会删除媒体库中的链接。 - 本插件放置后被你从媒体库删除的文件不会被重新链接;补链会重建它们。 - 启用前已经下载的文件不会自动处理。启用插件后,设置页出现「硬链接补链」分区,点击 **链接已有文件** 把下载根目录下已有的正片与字幕补链到媒体库,已链接的文件跳过。该按钮调用 `POST /api/v1/plugins/hardlink/backfill`。 - `path_map` 在插件配置表单中按行编辑(**添加一行**)。在 `config/config.json` 中对应 `plugins.options.hardlink.path_map`,例如 `[{"downloader": "default", "from": "/downloads", "to": "/media/downloads"}]`。 ::: tip Docker 硬链接不能跨文件系统。在 Docker 中,请把下载目录与媒体库放在同一块盘上,并以**同一个挂载点**映射进 AB 容器(例如把 `/mnt/media` 整体挂载为 `/media`,下载目录与媒体库都在其下)。两个分别挂载的目录即使在同一块盘上,也会被视为不同的文件系统,此时按 `cross_device` 处理(默认复制,占用双倍空间)。下载器运行在另一个容器里、看到的路径与 AB 不同时,用 `path_map` 映射。 ::: ## 媒体库刷新 内置插件「媒体库刷新」(`media-server-refresh`)在种子整理完成后请求 Jellyfin、Emby 或 Plex 刷新媒体库。在 **设置 → 插件 → 媒体库刷新** 中选择服务器类型,填写服务器地址与 API Key(Plex 为 `X-Plex-Token`)后生效;未填写时不做任何事。收到事件后等待「延迟」秒(默认 30),期间整理完成的种子合并为一次刷新;刷新请求发出后到达的事件会再排一次刷新。启用「硬链接到媒体库」时,文件放入媒体库后会再刷新一次,跨盘复制慢于延迟时新剧集也能出现。 [1]: https://www.autobangumi.org/faq/#download-path [2]: https://www.autobangumi.org/faq/#file-renaming