Skip to content

识别词与词表

NanShare 的文件整理会先解析文件名,再识别 TMDB、豆瓣、季集、分辨率、特效、编码、制作组、自定义捕获变量,最后根据重命名模板渲染目标路径。识别词与词表就是用于干预这些阶段的规则集合。

本章节拆成四个独立页面:

页面作用阶段常用目标
自定义识别词名称解析前删除噪声、替换标题、指定 TMDB、修正季集、集数偏移
自定义制作组名称解析中识别压制组、字幕组、发布组,填充 releaseGroup
自定义捕获词名称解析中从文件名提取额外变量,填充 customCapture 或自定义模板变量
渲染后处理词模板渲染后清理最终路径、统一大小写、处理连续符号、替换渲染结果

执行顺序

整理时大致顺序如下:

text
原始文件名
  -> 自定义识别词预处理
  -> 内嵌 TMDB / 季集 / 类型信息提取
  -> 名称解析、TMDB / 豆瓣 / OpenAI 辅助识别
  -> 自定义制作组识别
  -> 自定义捕获词识别
  -> 重命名模板渲染
  -> 渲染后处理词清理
  -> 输出目标路径

不同规则处理的是不同对象:

  • 自定义识别词处理的是“识别前标题”。
  • 自定义制作组和自定义捕获词主要匹配“识别词处理后的原始标题”。
  • 渲染后处理词处理的是“模板渲染后的最终路径”。

通用规则

四类规则都遵循这些基本习惯:

  • 一行一条规则。
  • 空行会忽略。
  • # 开头表示注释。
  • 大多数匹配写法支持正则表达式。
  • 默认区分大小写,使用 (?i) 可忽略大小写。
  • 替换语法里的箭头必须写成 =>,两边都有空格。
  • 集数偏移语法里的分隔符必须写成 <>>>,两边都有空格。

示例:

text
# 注释
(?i)web-dl => WEB-DL
PROPER

模板字段

这些词表常用的模板字段:

字段来源
自定义制作组或末尾 -Group 自动识别
releaseGroup 的别名,通知模板里常见
自定义捕获词默认字段
自定义捕获词 正则 >> 变量名 生成

默认重命名模板里已经包含 customCapturereleaseGroup

jinja
{{title}} ({{year}}) {tmdbid-{{tmdbid}}}/{{en_title}}.{{year}}.{{part}}.{{webSource}}.{{resourceType}}.{{videoFormat}}.{{videoCodec}}.{{audioCodec}}.{{effect}}.{{bitDepth}}.{{fps}}-{{customCapture}}-{{releaseGroup}}{{fileExt}}

如果捕获词定义了命名变量,例如:

text
(?i)(IMAX|REMUX) >> editionTag

模板可以直接使用:

jinja
{{ editionTag }}

快速选择

想修正识别标题,用自定义识别词:

text
庆余年 第二季 => 庆余年 S02

想识别文件名末尾的压制组,用自定义制作组:

text
HHWEB
WiKi

想从文件名提取 IMAXDirector's Cut 这类额外标签,用自定义捕获词:

text
(?i)(IMAX|Director's Cut|REMUX)

想修改最终渲染路径,用渲染后处理词:

text
-- => -
\.{2,} => .

测试建议

保存规则后,建议用几个典型文件名测试:

text
Joy.of.Life.第二季.E13.2160p.WEB-DL.H265.AAC-HHWEB.mkv
FAIRY TAIL - 100 YEARS QUEST - 03 [1080p][CHD].mkv
JoJo's Bizarre Adventure.S01E01.1080p.WEB-DL.mkv
Dune.Part.Two.2024.IMAX.2160p.WEB-DL.DV.Atmos-GROUP.mkv

测试时关注:

  • 标题是否被替换成预期内容。
  • TMDB ID、媒体类型、季集是否正确。
  • releaseGroup 是否命中。
  • customCapture 和命名变量是否能在模板里渲染。
  • 渲染后处理词是否只影响最终路径,没有误伤标题识别。

NanShare 文档站仅说明 NanShare 项目的部署、配置与使用。