修复剧集命名模式重命名功能失效的问题

This commit is contained in:
x1ao4 2025-07-06 12:19:57 +08:00
parent e7d8666dcb
commit f7b3dc2c35

View File

@ -1753,8 +1753,6 @@ class Quark:
# 支持剧集命名模式 # 支持剧集命名模式
elif task.get("use_episode_naming") and task.get("episode_naming"): elif task.get("use_episode_naming") and task.get("episode_naming"):
# 剧集命名模式下已经在do_save中打印了剧集命名信息这里不再重复打印 # 剧集命名模式下已经在do_save中打印了剧集命名信息这里不再重复打印
# 设置正则模式为空
task["regex_pattern"] = None
# 构建剧集命名的正则表达式 # 构建剧集命名的正则表达式
episode_pattern = task["episode_naming"] episode_pattern = task["episode_naming"]
# 先检查是否包含合法的[]字符 # 先检查是否包含合法的[]字符
@ -3044,7 +3042,6 @@ class Quark:
dir_file_list = self.ls_dir(self.savepath_fid[savepath]) dir_file_list = self.ls_dir(self.savepath_fid[savepath])
# 构建目标目录中所有文件的查重索引(按大小和修改时间) # 构建目标目录中所有文件的查重索引(按大小和修改时间)
dir_files_map = {} dir_files_map = {}
for dir_file in dir_file_list: for dir_file in dir_file_list:
@ -3070,19 +3067,12 @@ class Quark:
# 找出已命名的文件列表,避免重复转存 # 找出已命名的文件列表,避免重复转存
existing_episode_numbers = set() existing_episode_numbers = set()
for dir_file in dir_file_list: for dir_file in dir_file_list:
if not dir_file["dir"] and regex_pattern: if not dir_file["dir"]:
try: try:
if regex_pattern == "SPECIAL_EPISODE_PATTERN": # 对于剧集命名模式直接使用extract_episode_number函数提取剧集号
# 对于特殊模式使用extract_episode_number函数提取剧集号 episode_num = extract_episode_number_local(dir_file["file_name"])
episode_num = extract_episode_number_local(dir_file["file_name"]) if episode_num is not None:
if episode_num is not None: existing_episode_numbers.add(episode_num)
existing_episode_numbers.add(episode_num)
else:
# 使用常规正则表达式匹配
matches = re.match(regex_pattern, dir_file["file_name"])
if matches:
episode_num = int(matches.group(1))
existing_episode_numbers.add(episode_num)
except: except:
pass pass
@ -3421,23 +3411,21 @@ class Quark:
error_log = f"重命名: {dir_file['file_name']}{target_name} 失败,{rename_result['message']}" error_log = f"重命名: {dir_file['file_name']}{target_name} 失败,{rename_result['message']}"
rename_logs.append(error_log) rename_logs.append(error_log)
# 返回重命名日志和成功标志 # 不要立即返回,继续执行本地文件重命名逻辑
return True, rename_logs # 更新dir_file_list以包含新转存的文件
dir_file_list = self.ls_dir(self.savepath_fid[savepath])
else: else:
err_msg = query_task_return["message"] err_msg = query_task_return["message"]
add_notify(f"❌《{task['taskname']}》转存失败: {err_msg}\n") add_notify(f"❌《{task['taskname']}》转存失败: {err_msg}\n")
return False, []
else: else:
print(f"❌ 保存文件失败: {save_file_return['message']}") print(f"❌ 保存文件失败: {save_file_return['message']}")
add_notify(f"❌《{task['taskname']}》转存失败: {save_file_return['message']}\n") add_notify(f"❌《{task['taskname']}》转存失败: {save_file_return['message']}\n")
return False, []
else: else:
# print("没有需要保存的新文件") # print("没有需要保存的新文件")
return False, [] pass
except Exception as e: except Exception as e:
print(f"处理分享链接时发生错误: {str(e)}") print(f"处理分享链接时发生错误: {str(e)}")
add_notify(f"❌《{task['taskname']}》处理分享链接时发生错误: {str(e)}\n") add_notify(f"❌《{task['taskname']}》处理分享链接时发生错误: {str(e)}\n")
return False, []
# 对本地已有文件进行重命名(即使没有分享链接或处理失败也执行) # 对本地已有文件进行重命名(即使没有分享链接或处理失败也执行)
is_rename_count = 0 is_rename_count = 0