modify scripts
This commit is contained in:
@ -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:
|
||||
|
||||
Reference in New Issue
Block a user