From 3249c18d172d779dd4a3d201961efec8ee683ed7 Mon Sep 17 00:00:00 2001 From: x1ao4 Date: Sat, 23 Aug 2025 21:54:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=80=9A=E8=BF=87=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=AF=B9=E6=9C=AC=E5=9C=B0=EF=BC=88=E7=BD=91=E7=9B=98?= =?UTF-8?q?=EF=BC=89=E6=96=87=E4=BB=B6=E8=BF=9B=E8=A1=8C=E9=87=8D=E5=91=BD?= =?UTF-8?q?=E5=90=8D=E6=97=B6=E6=B2=A1=E6=9C=89=E5=BA=94=E7=94=A8=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E8=A7=84=E5=88=99=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在 do_rename_task() 函数中为所有命名模式(顺序命名、剧集命名、正则命名)添加了过滤规则检查,确保本地文件重命名时也会应用 filterwords 过滤规则 --- quark_auto_save.py | 94 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 93 insertions(+), 1 deletion(-) diff --git a/quark_auto_save.py b/quark_auto_save.py index c9f0f70..109193f 100644 --- a/quark_auto_save.py +++ b/quark_auto_save.py @@ -3003,7 +3003,37 @@ class Quark: non_dir_files = [f for f in dir_file_list if not f.get("dir", False)] is_empty_dir = len(non_dir_files) == 0 - + # 应用过滤词过滤(修复bug:为本地文件重命名添加过滤规则) + if task.get("filterwords"): + # 记录过滤前的文件总数 + original_total_count = len(dir_file_list) + + # 同时支持中英文逗号分隔 + filterwords = task["filterwords"].replace(",", ",") + filterwords_list = [word.strip().lower() for word in filterwords.split(',')] + + # 过滤掉包含过滤词的文件 + filtered_files = [] + for file in dir_file_list: + if file.get("dir", False): + # 文件夹也需要检查过滤词 + file_name = file['file_name'].lower() + file_ext = os.path.splitext(file_name)[1].lower().lstrip('.') + + # 检查过滤词是否存在于文件名中,或者过滤词等于扩展名 + if not any(word in file_name for word in filterwords_list) and not any(word == file_ext for word in filterwords_list): + filtered_files.append(file) + else: + # 文件检查过滤词 + file_name = file['file_name'].lower() + file_ext = os.path.splitext(file_name)[1].lower().lstrip('.') + + # 检查过滤词是否存在于文件名中,或者过滤词等于扩展名 + if not any(word in file_name for word in filterwords_list) and not any(word == file_ext for word in filterwords_list): + filtered_files.append(file) + + dir_file_list = filtered_files + dir_file_name_list = [item["file_name"] for item in dir_file_list] # 找出当前最大序号 max_sequence = 0 @@ -3609,6 +3639,37 @@ class Quark: is_rename_count = 0 renamed_files = {} + # 应用过滤词过滤(修复bug:为本地文件重命名添加过滤规则) + if task.get("filterwords"): + # 记录过滤前的文件总数 + original_total_count = len(dir_file_list) + + # 同时支持中英文逗号分隔 + filterwords = task["filterwords"].replace(",", ",") + filterwords_list = [word.strip().lower() for word in filterwords.split(',')] + + # 过滤掉包含过滤词的文件 + filtered_files = [] + for file in dir_file_list: + if file.get("dir", False): + # 文件夹也需要检查过滤词 + file_name = file['file_name'].lower() + file_ext = os.path.splitext(file_name)[1].lower().lstrip('.') + + # 检查过滤词是否存在于文件名中,或者过滤词等于扩展名 + if not any(word in file_name for word in filterwords_list) and not any(word == file_ext for word in filterwords_list): + filtered_files.append(file) + else: + # 文件检查过滤词 + file_name = file['file_name'].lower() + file_ext = os.path.splitext(file_name)[1].lower().lstrip('.') + + # 检查过滤词是否存在于文件名中,或者过滤词等于扩展名 + if not any(word in file_name for word in filterwords_list) and not any(word == file_ext for word in filterwords_list): + filtered_files.append(file) + + dir_file_list = filtered_files + # 使用一个列表收集所有需要重命名的操作 rename_operations = [] rename_logs = [] # 收集重命名日志 @@ -3754,6 +3815,37 @@ class Quark: # 获取目录中的文件列表 dir_file_list = self.ls_dir(self.savepath_fid[savepath]) + # 应用过滤词过滤(修复bug:为本地文件重命名添加过滤规则) + if task.get("filterwords"): + # 记录过滤前的文件总数 + original_total_count = len(dir_file_list) + + # 同时支持中英文逗号分隔 + filterwords = task["filterwords"].replace(",", ",") + filterwords_list = [word.strip().lower() for word in filterwords.split(',')] + + # 过滤掉包含过滤词的文件 + filtered_files = [] + for file in dir_file_list: + if file.get("dir", False): + # 文件夹也需要检查过滤词 + file_name = file['file_name'].lower() + file_ext = os.path.splitext(file_name)[1].lower().lstrip('.') + + # 检查过滤词是否存在于文件名中,或者过滤词等于扩展名 + if not any(word in file_name for word in filterwords_list) and not any(word == file_ext for word in filterwords_list): + filtered_files.append(file) + else: + # 文件检查过滤词 + file_name = file['file_name'].lower() + file_ext = os.path.splitext(file_name)[1].lower().lstrip('.') + + # 检查过滤词是否存在于文件名中,或者过滤词等于扩展名 + if not any(word in file_name for word in filterwords_list) and not any(word == file_ext for word in filterwords_list): + filtered_files.append(file) + + dir_file_list = filtered_files + # 使用一个列表收集所有需要重命名的操作 rename_operations = [] rename_logs = [] # 收集重命名日志