modify scripts
This commit is contained in:
@ -96,7 +96,7 @@ def sanitize_filename(name):
|
|||||||
name = name.replace(char, '-')
|
name = name.replace(char, '-')
|
||||||
return name
|
return name
|
||||||
|
|
||||||
def process_scene_files(conn, mode, prefix):
|
def process_scene_files(conn, mode, prefix, rename_style):
|
||||||
"""处理所有场景文件映射关系(优化版:合并查询+预加载缓存)"""
|
"""处理所有场景文件映射关系(优化版:合并查询+预加载缓存)"""
|
||||||
results = []
|
results = []
|
||||||
try:
|
try:
|
||||||
@ -179,11 +179,12 @@ def process_scene_files(conn, mode, prefix):
|
|||||||
else:
|
else:
|
||||||
new_basename = f"{sanitized_studio}.{release_date} {sanitized_performers} - {sanitized_title}"
|
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'):
|
if rename_style == 'simple':
|
||||||
# code 转换成大写
|
if scene_info.get('code'):
|
||||||
new_code = scene_info['code'].upper()
|
# code 转换成大写
|
||||||
new_basename = f"{new_code}_{release_date}.{ext}" if ext else f"{new_code}_{release_date}"
|
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:
|
if len(new_basename) > 254:
|
||||||
logger.warning(f"生成的文件名过长,跳过 (file_id={file_id}): {new_basename}")
|
logger.warning(f"生成的文件名过长,跳过 (file_id={file_id}): {new_basename}")
|
||||||
@ -257,6 +258,7 @@ def main():
|
|||||||
help='运行模式: check(检查) 或 run(执行)')
|
help='运行模式: check(检查) 或 run(执行)')
|
||||||
parser.add_argument('--db', default='movies.db', help='SQLite数据库文件路径')
|
parser.add_argument('--db', default='movies.db', help='SQLite数据库文件路径')
|
||||||
parser.add_argument('--prefix', default='', help='目录前缀,用来过滤文件路径')
|
parser.add_argument('--prefix', default='', help='目录前缀,用来过滤文件路径')
|
||||||
|
parser.add_argument('--rename_style', choices=['standard', 'simple'], default='standard', help='文件命名规则,标准格式和简化格式')
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
if not os.path.exists(args.db):
|
if not os.path.exists(args.db):
|
||||||
@ -267,7 +269,7 @@ def main():
|
|||||||
try:
|
try:
|
||||||
conn = sqlite3.connect(args.db)
|
conn = sqlite3.connect(args.db)
|
||||||
logger.info(f"成功连接到数据库: {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:
|
except sqlite3.Error as e:
|
||||||
logger.error(f"数据库连接失败: {str(e)}", exc_info=True)
|
logger.error(f"数据库连接失败: {str(e)}", exc_info=True)
|
||||||
finally:
|
finally:
|
||||||
|
|||||||
Reference in New Issue
Block a user