Files
Auto_Bangumi/docs/feature/rename.md

125 lines
5.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 文件重命名
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)。