From 80f5c7bc44ea9c5d3ca4bf90b1e78dcac2fca9a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=99=AF=E5=A4=A7=E4=BE=A0?= Date: Wed, 14 Jan 2026 18:48:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20=E6=95=B4=E7=90=86?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=88=96=E7=9B=AE=E5=BD=95=E6=97=B6=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E6=AD=A3=E7=A1=AE=E5=BA=94=E7=94=A8=E5=A4=9A=E5=B1=82?= =?UTF-8?q?=E6=A0=87=E9=A2=98=E7=9A=84=E9=87=8D=E5=91=BD=E5=90=8D=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- app/helper/directory.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/app/helper/directory.py b/app/helper/directory.py index a3487529..5fc43c83 100644 --- a/app/helper/directory.py +++ b/app/helper/directory.py @@ -142,19 +142,22 @@ class DirectoryHelper: # 计算重命名中的文件夹层数 rename_list = rename_format.split("/") rename_format_level = len(rename_list) - 1 - # 查找标题参数所在层 - for level, name in enumerate(rename_list): + # 反向查找标题参数所在层 + for level, name in enumerate(reversed(rename_list)): + if level == 0: + # 跳过文件名的标题参数 + continue matchs = JINJA2_VAR_PATTERN.findall(name) if not matchs: continue # 处理特例,有的人重命名的第一层是年份、分辨率 if any("title" in m for m in matchs): - # 找出含标题的这一层作为媒体根目录 - rename_format_level -= level + # 找出最后一层含有标题参数的目录作为媒体根目录 + rename_format_level = level break else: # 假定第一层目录是媒体根目录 - logger.warn(f"重命名格式 {rename_format} 缺少标题参数") + logger.warn(f"重命名格式 {rename_format} 缺少标题目录") if rename_format_level > len(rename_path.parents): # 通常因为路径以/结尾,被Path规范化删除了 logger.error(f"路径 {rename_path} 不匹配重命名格式 {rename_format}")