# 文件重命名 AB 提供四种重命名方式:`pn`、`advance`、`template` 和 `none`。在 **设置 → 番剧管理设置 → 重命名方式** 中选择,默认为 `pn`。 从 4.0 开始,重命名方式由插件提供: - `none` 由 AB 自带,始终可用。 - `pn`、`advance`、`template` 由内置插件「重命名」(`rename`)提供,默认启用。 - 其它插件也可以提供重命名方式,启用后出现在下拉框中。 在 **设置 → 插件** 中停用「重命名」插件后,所有番剧按 `none` 处理。插件连续 5 次出错被自动停用时也是如此。所选方式不可用时,AB 记录一次日志,并按 `none` 处理。 ### pn `pure name` 的缩写。以从文件名解析出的标题命名。 示例: ``` [Lilith-Raws] 86 - Eighty Six - 01 [Baha][WEB-DL][1080p][AVC AAC][CHT][MKV].mkv >> 86 - Eighty Six S01E01.mkv ``` ### advance 高级重命名。以番剧文件夹名命名。 ``` /downloads/Bangumi/86 - Eighty Six(2023)/Season 1/[Lilith-Raws] 86 - Eighty Six - 01 [Baha][WEB-DL][1080p][AVC AAC][CHT][MKV].mkv >> 86 - Eighty Six(2023) S01E01.mkv ``` `pn` 与 `advance` 的结果与 3.x 完全相同。剧场版不加 `SxxExx`;字幕文件在扩展名前加语言,如 `.zh.ass`。 ### template 按自定义模板命名。模板在 **设置 → 插件 → 重命名** 的「文件名模板」中填写。 ### none 不重命名。文件保持原样。 ## 模板重命名 ::: v-pre 默认模板如下。普通剧集的结果与 `pn` 相同;剧场版 `pn` 不加 `SxxExx`,默认模板会加: ``` {{ title }} S{{ season|pad(2) }}E{{ episode|pad(2) }} ``` 模板使用 [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 位(省略 n 时为 2),小数部分保留:`{{ episode|pad(3) }}` 得到 `005`,`{{ 12.5|pad(2) }}` 得到 `12.5`。 - 模板只生成文件名主体。AB 自动追加扩展名;字幕在扩展名前追加 `.语言`,如 `.zh.ass`。 - 模板对剧场版不做特殊处理。需要区分时,用 `episode_type` 判断,例如 `{% if episode_type == "movie" %}{{ bangumi_name }}{% else %}…{% endif %}`。保存时的检查只渲染一个普通剧集示例,示例不经过的分支中的错误,要到重命名时才出现。 示例:`[{{ group }}] {{ bangumi_name }} - {{ episode|pad(2) }}` → `[ANi] 葬送的芙莉莲 (2023) - 05.mkv` ::: ### 模板出错时 - **保存时**:AB 用一个示例文件试渲染模板。语法错误、使用了不存在的变量、渲染结果不合法时,保存被拒绝,原模板保持不变。 - **运行时**:某个文件渲染失败、结果为空,或含 `/`、`\`、控制字符时,该文件**保留原名**,AB 发送「文件未重命名」通知。同一种子、同一原因在 AB 运行期间只通知一次。该种子不打 `ab:renamed` 标签,修正模板后下一轮自动重试。**不会退回 `pn`。** - **手工修改 `config.json`**:已保存的模板不合法时,整个「重命名」插件加载失败,`pn`、`advance`、`template` 都不可用,所有番剧按 `none` 处理。插件卡片上显示错误原因。 ::: warning 更换重命名方式(包括修改模板)只影响之后整理的种子。已整理完成(带 `ab:renamed` 标签)的种子不会被重新命名。 ::: `config.json` 中的位置见 [番剧管理设置](../config/manager.md)。 ## 收藏重命名 AB 支持收藏重命名。收藏重命名需要: - 剧集位于收藏的一级目录中 - 可以从文件名解析出剧集编号 AB 还可以重命名一级目录中的字幕文件。 重命名后,剧集和目录将放置在 `Season` 文件夹中。 重命名后的收藏将被移动并归类到 `BangumiCollection` 下。 ## 剧集偏移 从 v3.2 开始,AB 支持重命名时的剧集偏移。在以下情况下很有用: - RSS 显示的剧集编号与预期不同(例如 S2E01 应该是 S1E29) - 番剧因播出间隔而产生"虚拟季度" 当为番剧配置偏移后,AB 会在重命名时自动应用: ``` 原始:S02E01.mkv 应用偏移(季度:-1,剧集:+28):S01E29.mkv ``` 配置偏移: 1. 点击番剧海报 2. 打开高级设置 3. 设置季度偏移和/或剧集偏移值 4. 或使用"自动检测"让 AB 建议正确的偏移 有关自动检测的更多详情,请参阅[番剧管理](./bangumi.md#剧集偏移自动检测)。 ## 整理之后 重命名完成后,AB 发布「整理完成」事件,重命名方式为 `none` 时也会发布。内置插件可以在此之后继续处理文件: - [硬链接到媒体库](./hardlink.md):把整理好的文件链接到另一个目录,下载目录继续做种。 - 「媒体库刷新」(`media-server-refresh`):请求 Jellyfin、Emby 或 Plex 刷新媒体库。见 [番剧管理设置](../config/manager.md)。