From 6cf529541d075e1575e3cec4a90f7b8599fdf7f0 Mon Sep 17 00:00:00 2001 From: sophon Date: Thu, 25 Dec 2025 15:02:07 +0800 Subject: [PATCH] modify scripts --- docker/stash/scripts/batch_format_filename.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/docker/stash/scripts/batch_format_filename.py b/docker/stash/scripts/batch_format_filename.py index 0d0a8d6..879683f 100644 --- a/docker/stash/scripts/batch_format_filename.py +++ b/docker/stash/scripts/batch_format_filename.py @@ -96,7 +96,7 @@ def sanitize_filename(name): name = name.replace(char, '-') return name -def process_scene_files(conn, mode, prefix): +def process_scene_files(conn, mode, prefix, rename_style): """处理所有场景文件映射关系(优化版:合并查询+预加载缓存)""" results = [] try: @@ -179,11 +179,12 @@ def process_scene_files(conn, mode, prefix): else: new_basename = f"{sanitized_studio}.{release_date} {sanitized_performers} - {sanitized_title}" - # 特殊规则: 路径中带有 FA Pro 的(不区分大小写),新文件名只用 code 和 日期命名 - if ("FA Pro" in folder_path or "fa pro" in folder_path.lower()) and scene_info.get('code'): - # code 转换成大写 - new_code = scene_info['code'].upper() - new_basename = f"{new_code}_{release_date}.{ext}" if ext else f"{new_code}_{release_date}" + # 简化命名规则,适用于日本影片 + if rename_style == 'simple': + if scene_info.get('code'): + # code 转换成大写 + new_code = scene_info['code'].upper() + new_basename = f"{new_code}_{release_date}.{ext}" if ext else f"{new_code}_{release_date}" if len(new_basename) > 254: logger.warning(f"生成的文件名过长,跳过 (file_id={file_id}): {new_basename}") @@ -257,6 +258,7 @@ def main(): help='运行模式: check(检查) 或 run(执行)') parser.add_argument('--db', default='movies.db', help='SQLite数据库文件路径') parser.add_argument('--prefix', default='', help='目录前缀,用来过滤文件路径') + parser.add_argument('--rename_style', choices=['standard', 'simple'], default='standard', help='文件命名规则,标准格式和简化格式') args = parser.parse_args() if not os.path.exists(args.db): @@ -267,7 +269,7 @@ def main(): try: conn = sqlite3.connect(args.db) logger.info(f"成功连接到数据库: {args.db}") - process_scene_files(conn, args.mode, args.prefix) + process_scene_files(conn, args.mode, args.prefix, args.rename_style) except sqlite3.Error as e: logger.error(f"数据库连接失败: {str(e)}", exc_info=True) finally: