From 144203ad3e33181546e4ad91b7b06f66fcace204 Mon Sep 17 00:00:00 2001 From: benjamin <24502572+ddtyjmyjm@users.noreply.github.com> Date: Mon, 21 Dec 2020 20:10:22 +0800 Subject: [PATCH 1/7] rename fun name 'CEF' to 'rm_empty_folder' --- AV_Data_Capture.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/AV_Data_Capture.py b/AV_Data_Capture.py index e99462d..1209a22 100755 --- a/AV_Data_Capture.py +++ b/AV_Data_Capture.py @@ -55,7 +55,7 @@ def create_failed_folder(failed_folder): sys.exit(0) -def CEF(path): +def rm_empty_folder(path): try: files = os.listdir(path) # 获取路径下的子文件(夹)列表 for file in files: @@ -142,8 +142,8 @@ if __name__ == '__main__': if not single_file_path == '': print('[+]==================== Single File =====================') create_data_and_move_with_custom_number(single_file_path, conf,custom_number) - CEF(conf.success_folder()) - CEF(conf.failed_folder()) + rm_empty_folder(conf.success_folder()) + rm_empty_folder(conf.failed_folder()) print("[+]All finished!!!") input("[+][+]Press enter key exit, you can check the error messge before you exit.") sys.exit(0) @@ -164,8 +164,8 @@ if __name__ == '__main__': print('[!] - ' + percentage + ' [' + str(count) + '/' + count_all + '] -') create_data_and_move(movie_path, conf, conf.debug()) - CEF(conf.success_folder()) - CEF(conf.failed_folder()) + rm_empty_folder(conf.success_folder()) + rm_empty_folder(conf.failed_folder()) print("[+]All finished!!!") if conf.auto_exit(): sys.exit(0) From 63b76d02b5346b3c19477c4e8e21f8fa31090b83 Mon Sep 17 00:00:00 2001 From: benjamin <24502572+ddtyjmyjm@users.noreply.github.com> Date: Mon, 21 Dec 2020 20:15:40 +0800 Subject: [PATCH 2/7] remove redundant functions and usage: same function is in AV_Data_capture.py and used --- core.py | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/core.py b/core.py index 080b32e..9e47fce 100755 --- a/core.py +++ b/core.py @@ -34,15 +34,6 @@ def moveFailedFolder(filepath, failed_folder): return -def CreatFailedFolder(failed_folder): - if not os.path.exists(failed_folder + '/'): # 新建failed文件夹 - try: - os.makedirs(failed_folder + '/') - except: - print("[-]failed!can not be make Failed output folder\n[-](Please run as Administrator)") - return - - def get_data_from_json(file_number, filepath, conf: config.Config): # 从JSON返回元数据 """ iterate through all services and fetch the data @@ -547,9 +538,6 @@ def core_main(file_path, number_th, conf: config.Config): if '流出' in filepath: liuchu = '流出' - # 创建输出失败目录 - CreatFailedFolder(conf.failed_folder()) - # 调试模式检测 if conf.debug(): debug_print(json_data) From d29ad47f7bd01e8f4d3a7e95cce39e745ebcd819 Mon Sep 17 00:00:00 2001 From: benjamin <24502572+ddtyjmyjm@users.noreply.github.com> Date: Mon, 21 Dec 2020 21:41:32 +0800 Subject: [PATCH 3/7] fix: fix the bug that if fail or success folder only has empty folders, it will also remove the fail or success folder. --- AV_Data_Capture.py | 2 +- core.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/AV_Data_Capture.py b/AV_Data_Capture.py index 1209a22..145d233 100755 --- a/AV_Data_Capture.py +++ b/AV_Data_Capture.py @@ -59,7 +59,7 @@ def rm_empty_folder(path): try: files = os.listdir(path) # 获取路径下的子文件(夹)列表 for file in files: - os.removedirs(path + '/' + file) # 删除这个空文件夹 + os.rmdir(path + '/' + file) # 删除这个空文件夹 print('[+]Deleting empty folder', path + '/' + file) except: a = '' diff --git a/core.py b/core.py index 9e47fce..27a51f0 100755 --- a/core.py +++ b/core.py @@ -31,7 +31,7 @@ def escape_path(path, escape_literals: str): # Remove escape literals def moveFailedFolder(filepath, failed_folder): print('[-]Move to Failed output folder') shutil.move(filepath, str(os.getcwd()) + '/' + failed_folder + '/') - return + return def get_data_from_json(file_number, filepath, conf: config.Config): # 从JSON返回元数据 From 8b6c40375cd6f6547f76ed846f3397473d792765 Mon Sep 17 00:00:00 2001 From: benjamin <24502572+ddtyjmyjm@users.noreply.github.com> Date: Mon, 21 Dec 2020 23:50:17 +0800 Subject: [PATCH 4/7] fix: wrong symlink created. Using absolute path instead of relative path to reduce (potential) problems --- core.py | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/core.py b/core.py index 27a51f0..0a9ec16 100755 --- a/core.py +++ b/core.py @@ -1,5 +1,6 @@ import json import os.path +import pathlib import re import shutil import platform @@ -422,21 +423,21 @@ def cutImage(imagecut, path, number, c_word): def paste_file_to_folder(filepath, path, number, c_word, conf: config.Config): # 文件路径,番号,后缀,要移动至的位置 houzhui = str(re.search('[.](iso|ISO|AVI|RMVB|WMV|MOV|MP4|MKV|FLV|TS|WEBM|avi|rmvb|wmv|mov|mp4|mkv|flv|ts|webm)$', filepath).group()) - + file_parent_origin_path = str(pathlib.Path(filepath).parent) try: # 如果soft_link=1 使用软链接 if conf.soft_link(): os.symlink(filepath, path + '/' + number + c_word + houzhui) else: os.rename(filepath, path + '/' + number + c_word + houzhui) - if os.path.exists(os.getcwd() + '/' + number + c_word + '.srt'): # 字幕移动 - os.rename(os.getcwd() + '/' + number + c_word + '.srt', path + '/' + number + c_word + '.srt') + if os.path.exists(file_parent_origin_path + '/' + number + c_word + '.srt'): # 字幕移动 + os.rename(file_parent_origin_path + '/' + number + c_word + '.srt', path + '/' + number + c_word + '.srt') print('[+]Sub moved!') - elif os.path.exists(os.getcwd() + '/' + number + c_word + '.ssa'): - os.rename(os.getcwd() + '/' + number + c_word + '.ssa', path + '/' + number + c_word + '.ssa') + elif os.path.exists(file_parent_origin_path + '/' + number + c_word + '.ssa'): + os.rename(file_parent_origin_path + '/' + number + c_word + '.ssa', path + '/' + number + c_word + '.ssa') print('[+]Sub moved!') - elif os.path.exists(os.getcwd() + '/' + number + c_word + '.sub'): - os.rename(os.getcwd() + '/' + number + c_word + '.sub', path + '/' + number + c_word + '.sub') + elif os.path.exists(file_parent_origin_path + '/' + number + c_word + '.sub'): + os.rename(file_parent_origin_path + '/' + number + c_word + '.sub', path + '/' + number + c_word + '.sub') print('[+]Sub moved!') except FileExistsError: print('[-]File Exists! Please check your movie!') @@ -451,20 +452,20 @@ def paste_file_to_folder_mode2(filepath, path, multi_part, number, part, c_word, if multi_part == 1: number += part # 这时number会被附加上CD1后缀 houzhui = str(re.search('[.](AVI|RMVB|WMV|MOV|MP4|MKV|FLV|TS|WEBM|avi|rmvb|wmv|mov|mp4|mkv|flv|ts|webm|iso|ISO)$', filepath).group()) - + file_parent_origin_path = str(pathlib.Path(filepath).parent) try: if conf.soft_link(): os.symlink(filepath, path + '/' + number + part + c_word + houzhui) else: os.rename(filepath, path + '/' + number + part + c_word + houzhui) - if os.path.exists(number + '.srt'): # 字幕移动 - os.rename(number + part + c_word + '.srt', path + '/' + number + part + c_word + '.srt') + if os.path.exists(file_parent_origin_path + '/' + number + '.srt'): # 字幕移动 + os.rename(file_parent_origin_path + '/' + number + part + c_word + '.srt', path + '/' + number + part + c_word + '.srt') print('[+]Sub moved!') - elif os.path.exists(number + part + c_word + '.ass'): - os.rename(number + part + c_word + '.ass', path + '/' + number + part + c_word + '.ass') + elif os.path.exists(file_parent_origin_path + '/' + number + part + c_word + '.ass'): + os.rename(file_parent_origin_path + '/' + number + part + c_word + '.ass', path + '/' + number + part + c_word + '.ass') print('[+]Sub moved!') - elif os.path.exists(number + part + c_word + '.sub'): - os.rename(number + part + c_word + '.sub', path + '/' + number + part + c_word + '.sub') + elif os.path.exists(file_parent_origin_path + '/' + number + part + c_word + '.sub'): + os.rename(file_parent_origin_path + '/' + number + part + c_word + '.sub', path + '/' + number + part + c_word + '.sub') print('[+]Sub moved!') print('[!]Success') except FileExistsError: @@ -511,7 +512,9 @@ def core_main(file_path, number_th, conf: config.Config): cn_sub = '' liuchu = '' - filepath = file_path # 影片的路径 + + filepath = file_path # 影片的路径 绝对路径 + rootpath = str(pathlib.Path(filepath).parent) number = number_th json_data = get_data_from_json(number, filepath, conf) # 定义番号 @@ -543,7 +546,7 @@ def core_main(file_path, number_th, conf: config.Config): debug_print(json_data) # 创建文件夹 - path = create_folder(conf.success_folder(), json_data.get('location_rule'), json_data, conf) + path = create_folder(rootpath + '/' + conf.success_folder(), json_data.get('location_rule'), json_data, conf) # main_mode # 1: 刮削模式 / Scraping mode From 7183041cbe296b1a364fc72c971e66a26077d9ea Mon Sep 17 00:00:00 2001 From: benjamin <24502572+ddtyjmyjm@users.noreply.github.com> Date: Tue, 22 Dec 2020 00:45:41 +0800 Subject: [PATCH 5/7] fix: if process failed, though soft_link mode is on, it will still move the file to the failed folder. --- AV_Data_Capture.py | 2 +- core.py | 53 ++++++++++++++++++++++++++-------------------- 2 files changed, 31 insertions(+), 24 deletions(-) diff --git a/AV_Data_Capture.py b/AV_Data_Capture.py index 145d233..3d3d85b 100755 --- a/AV_Data_Capture.py +++ b/AV_Data_Capture.py @@ -149,7 +149,7 @@ if __name__ == '__main__': sys.exit(0) # ========== Single File ========== - movie_list = movie_lists(".", re.split("[,,]", conf.escape_folder())) + movie_list = movie_lists(os.getcwd(), re.split("[,,]", conf.escape_folder())) count = 0 count_all = str(len(movie_list)) diff --git a/core.py b/core.py index 0a9ec16..70389cc 100755 --- a/core.py +++ b/core.py @@ -29,9 +29,16 @@ def escape_path(path, escape_literals: str): # Remove escape literals return path -def moveFailedFolder(filepath, failed_folder): - print('[-]Move to Failed output folder') - shutil.move(filepath, str(os.getcwd()) + '/' + failed_folder + '/') +def moveFailedFolder(filepath, failed_folder, symlink: bool = False): + root_path = str(pathlib.Path(filepath).parent) + file_name = pathlib.Path(filepath).name + destination_path = root_path + '/' + failed_folder + '/' + if symlink: + print('[-]Create symlink to Failed output folder') + os.symlink(filepath, destination_path + '/' + file_name) + else: + print('[-]Move to Failed output folder') + shutil.move(filepath, destination_path) return @@ -98,7 +105,7 @@ def get_data_from_json(file_number, filepath, conf: config.Config): # 从JSON # Return if data not found in all sources if not json_data: print('[-]Movie Data not found!') - moveFailedFolder(filepath, conf.failed_folder()) + moveFailedFolder(filepath, conf.failed_folder(), conf.soft_link()) return # ================================================网站规则添加结束================================================ @@ -126,7 +133,7 @@ def get_data_from_json(file_number, filepath, conf: config.Config): # 从JSON if title == '' or number == '': print('[-]Movie Data not found!') - moveFailedFolder(filepath, conf.failed_folder()) + moveFailedFolder(filepath, conf.failed_folder(), conf.soft_link()) return # if imagecut == '3': @@ -315,14 +322,14 @@ def download_file_with_filename(url, filename, path, conf: config.Config, filepa i += 1 print('[-]Image Download : Connect retry ' + str(i) + '/' + str(retry_count)) print('[-]Connect Failed! Please check your Proxy or Network!') - moveFailedFolder(filepath, failed_folder) + moveFailedFolder(filepath, failed_folder, conf.soft_link()) return # 封面是否下载成功,否则移动到failed def image_download(cover, number, c_word, path, conf: config.Config, filepath, failed_folder): if download_file_with_filename(cover, number + c_word + '-fanart.jpg', path, conf, filepath, failed_folder) == 'failed': - moveFailedFolder(filepath, failed_folder) + moveFailedFolder(filepath, failed_folder, conf.soft_link()) return switch, _proxy, _timeout, retry, _proxytype = conf.proxy() @@ -395,13 +402,11 @@ def print_files(path, c_word, naming_rule, part, cn_sub, json_data, filepath, fa except IOError as e: print("[-]Write Failed!") print(e) - moveFailedFolder(filepath, failed_folder) - return + raise e except Exception as e1: print(e1) print("[-]Write Failed!") - moveFailedFolder(filepath, failed_folder) - return + raise e1 def cutImage(imagecut, path, number, c_word): @@ -476,16 +481,12 @@ def paste_file_to_folder_mode2(filepath, path, multi_part, number, part, c_word, print('[-]Error! Please run as administrator!') return + def get_part(filepath, failed_folder): - try: - if re.search('-CD\d+', filepath): - return re.findall('-CD\d+', filepath)[0] - if re.search('-cd\d+', filepath): - return re.findall('-cd\d+', filepath)[0] - except: - print("[-]failed!Please rename the filename again!") - moveFailedFolder(filepath, failed_folder) - return + if re.search('-CD\d+', filepath): + return re.findall('-CD\d+', filepath)[0] + if re.search('-cd\d+', filepath): + return re.findall('-cd\d+', filepath)[0] def debug_print(data: json): @@ -534,7 +535,11 @@ def core_main(file_path, number_th, conf: config.Config): # =======================================================================判断-C,-CD后缀 if '-CD' in filepath or '-cd' in filepath: multi_part = 1 - part = get_part(filepath, conf.failed_folder()) + try: + part = get_part(filepath, conf.failed_folder()) + except: + print("[-]failed!Please rename the filename again!") + moveFailedFolder(filepath, conf.failed_folder(),conf.soft_link()) if '-c.' in filepath or '-C.' in filepath or '中文' in filepath or '字幕' in filepath: cn_sub = '1' c_word = '-C' # 中文字幕影片后缀 @@ -566,8 +571,10 @@ def core_main(file_path, number_th, conf: config.Config): cutImage(imagecut, path, number, c_word) # 打印文件 - print_files(path, c_word, json_data.get('naming_rule'), part, cn_sub, json_data, filepath, conf.failed_folder(), tag, json_data.get('actor_list'), liuchu) - + try: + print_files(path, c_word, json_data.get('naming_rule'), part, cn_sub, json_data, filepath, conf.failed_folder(), tag, json_data.get('actor_list'), liuchu) + except: + moveFailedFolder(filepath, conf.failed_folder(), conf.soft_link()) # 移动文件 paste_file_to_folder(filepath, path, number, c_word, conf) elif conf.main_mode() == 2: From 2a00cc5a48fe845a7d89b56a18e75ef4e78e356d Mon Sep 17 00:00:00 2001 From: benjamin <24502572+ddtyjmyjm@users.noreply.github.com> Date: Wed, 23 Dec 2020 14:44:35 +0800 Subject: [PATCH 6/7] fix: program will crash when the update checker function is failed. --- AV_Data_Capture.py | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/AV_Data_Capture.py b/AV_Data_Capture.py index 3d3d85b..9d07009 100755 --- a/AV_Data_Capture.py +++ b/AV_Data_Capture.py @@ -5,8 +5,15 @@ import sys from number_parser import get_number from core import * + def check_update(local_version): - data = json.loads(get_html("https://api.github.com/repos/yoshiko2/AV_Data_Capture/releases/latest")) + try: + data = json.loads(get_html("https://api.github.com/repos/yoshiko2/AV_Data_Capture/releases/latest")) + except Exception as e: + print("[-] Failed to update! Please check new version manually:") + print("[-] https://github.com/yoshiko2/AV_Data_Capture/releases") + print("[*]======================================================") + return remote = data["tag_name"] local = local_version @@ -23,19 +30,22 @@ def argparse_function(ver: str) -> [str, str, bool]: parser = argparse.ArgumentParser() parser.add_argument("file", default='', nargs='?', help="Single Movie file path.") parser.add_argument("-c", "--config", default='config.ini', nargs='?', help="The config file Path.") - parser.add_argument("-n", "--number", default='', nargs='?',help="Custom file number") - parser.add_argument("-a", "--auto-exit", dest='autoexit', action="store_true", help="Auto exit after program complete") + parser.add_argument("-n", "--number", default='', nargs='?', help="Custom file number") + parser.add_argument("-a", "--auto-exit", dest='autoexit', action="store_true", + help="Auto exit after program complete") parser.add_argument("-v", "--version", action="version", version=ver) args = parser.parse_args() return args.file, args.config, args.number, args.autoexit + def movie_lists(root, escape_folder): for folder in escape_folder: if folder in root: return [] total = [] - file_type = ['.mp4', '.avi', '.rmvb', '.wmv', '.mov', '.mkv', '.flv', '.ts', '.webm', '.MP4', '.AVI', '.RMVB', '.WMV','.MOV', '.MKV', '.FLV', '.TS', '.WEBM', '.iso','.ISO'] + file_type = ['.mp4', '.avi', '.rmvb', '.wmv', '.mov', '.mkv', '.flv', '.ts', '.webm', '.MP4', '.AVI', '.RMVB', + '.WMV', '.MOV', '.MKV', '.FLV', '.TS', '.WEBM', '.iso', '.ISO'] dirs = os.listdir(root) for entry in dirs: f = os.path.join(root, entry) @@ -65,9 +75,9 @@ def rm_empty_folder(path): a = '' -def create_data_and_move(file_path: str, c: config.Config,debug): +def create_data_and_move(file_path: str, c: config.Config, debug): # Normalized number, eg: 111xxx-222.mp4 -> xxx-222.mp4 - n_number = get_number(debug,file_path) + n_number = get_number(debug, file_path) if debug == True: print("[!]Making Data for [{}], the number is [{}]".format(file_path, n_number)) @@ -98,6 +108,7 @@ def create_data_and_move(file_path: str, c: config.Config,debug): except Exception as err: print('[!]', err) + def create_data_and_move_with_custom_number(file_path: str, c: config.Config, custom_number=None): try: print("[!]Making Data for [{}], the number is [{}]".format(file_path, custom_number)) @@ -141,7 +152,7 @@ if __name__ == '__main__': # ========== Single File ========== if not single_file_path == '': print('[+]==================== Single File =====================') - create_data_and_move_with_custom_number(single_file_path, conf,custom_number) + create_data_and_move_with_custom_number(single_file_path, conf, custom_number) rm_empty_folder(conf.success_folder()) rm_empty_folder(conf.failed_folder()) print("[+]All finished!!!") @@ -155,7 +166,7 @@ if __name__ == '__main__': count_all = str(len(movie_list)) print('[+]Find', count_all, 'movies') if conf.debug() == True: - print('[+]'+' DEBUG MODE ON '.center(54, '-')) + print('[+]' + ' DEBUG MODE ON '.center(54, '-')) if conf.soft_link(): print('[!] --- Soft link mode is ENABLE! ----') for movie_path in movie_list: # 遍历电影列表 交给core处理 From 7e94b024ff27af4ef3a488454c6725529783caad Mon Sep 17 00:00:00 2001 From: benjamin <24502572+ddtyjmyjm@users.noreply.github.com> Date: Thu, 24 Dec 2020 12:32:06 +0800 Subject: [PATCH 7/7] fix: revert the api of moveFailedFolder --- core.py | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/core.py b/core.py index 70389cc..f062824 100755 --- a/core.py +++ b/core.py @@ -29,11 +29,11 @@ def escape_path(path, escape_literals: str): # Remove escape literals return path -def moveFailedFolder(filepath, failed_folder, symlink: bool = False): +def moveFailedFolder(filepath, failed_folder): root_path = str(pathlib.Path(filepath).parent) file_name = pathlib.Path(filepath).name destination_path = root_path + '/' + failed_folder + '/' - if symlink: + if config.Config.soft_link(): print('[-]Create symlink to Failed output folder') os.symlink(filepath, destination_path + '/' + file_name) else: @@ -105,7 +105,7 @@ def get_data_from_json(file_number, filepath, conf: config.Config): # 从JSON # Return if data not found in all sources if not json_data: print('[-]Movie Data not found!') - moveFailedFolder(filepath, conf.failed_folder(), conf.soft_link()) + moveFailedFolder(filepath, conf.failed_folder()) return # ================================================网站规则添加结束================================================ @@ -133,7 +133,7 @@ def get_data_from_json(file_number, filepath, conf: config.Config): # 从JSON if title == '' or number == '': print('[-]Movie Data not found!') - moveFailedFolder(filepath, conf.failed_folder(), conf.soft_link()) + moveFailedFolder(filepath, conf.failed_folder()) return # if imagecut == '3': @@ -322,14 +322,14 @@ def download_file_with_filename(url, filename, path, conf: config.Config, filepa i += 1 print('[-]Image Download : Connect retry ' + str(i) + '/' + str(retry_count)) print('[-]Connect Failed! Please check your Proxy or Network!') - moveFailedFolder(filepath, failed_folder, conf.soft_link()) + moveFailedFolder(filepath, failed_folder) return # 封面是否下载成功,否则移动到failed def image_download(cover, number, c_word, path, conf: config.Config, filepath, failed_folder): if download_file_with_filename(cover, number + c_word + '-fanart.jpg', path, conf, filepath, failed_folder) == 'failed': - moveFailedFolder(filepath, failed_folder, conf.soft_link()) + moveFailedFolder(filepath, failed_folder) return switch, _proxy, _timeout, retry, _proxytype = conf.proxy() @@ -402,11 +402,13 @@ def print_files(path, c_word, naming_rule, part, cn_sub, json_data, filepath, fa except IOError as e: print("[-]Write Failed!") print(e) - raise e + moveFailedFolder(filepath, failed_folder) + return except Exception as e1: print(e1) print("[-]Write Failed!") - raise e1 + moveFailedFolder(filepath, failed_folder) + return def cutImage(imagecut, path, number, c_word): @@ -481,12 +483,16 @@ def paste_file_to_folder_mode2(filepath, path, multi_part, number, part, c_word, print('[-]Error! Please run as administrator!') return - def get_part(filepath, failed_folder): - if re.search('-CD\d+', filepath): - return re.findall('-CD\d+', filepath)[0] - if re.search('-cd\d+', filepath): - return re.findall('-cd\d+', filepath)[0] + try: + if re.search('-CD\d+', filepath): + return re.findall('-CD\d+', filepath)[0] + if re.search('-cd\d+', filepath): + return re.findall('-cd\d+', filepath)[0] + except: + print("[-]failed!Please rename the filename again!") + moveFailedFolder(filepath, failed_folder) + return def debug_print(data: json): @@ -535,11 +541,7 @@ def core_main(file_path, number_th, conf: config.Config): # =======================================================================判断-C,-CD后缀 if '-CD' in filepath or '-cd' in filepath: multi_part = 1 - try: - part = get_part(filepath, conf.failed_folder()) - except: - print("[-]failed!Please rename the filename again!") - moveFailedFolder(filepath, conf.failed_folder(),conf.soft_link()) + part = get_part(filepath, conf.failed_folder()) if '-c.' in filepath or '-C.' in filepath or '中文' in filepath or '字幕' in filepath: cn_sub = '1' c_word = '-C' # 中文字幕影片后缀 @@ -571,10 +573,8 @@ def core_main(file_path, number_th, conf: config.Config): cutImage(imagecut, path, number, c_word) # 打印文件 - try: - print_files(path, c_word, json_data.get('naming_rule'), part, cn_sub, json_data, filepath, conf.failed_folder(), tag, json_data.get('actor_list'), liuchu) - except: - moveFailedFolder(filepath, conf.failed_folder(), conf.soft_link()) + print_files(path, c_word, json_data.get('naming_rule'), part, cn_sub, json_data, filepath, conf.failed_folder(), tag, json_data.get('actor_list'), liuchu) + # 移动文件 paste_file_to_folder(filepath, path, number, c_word, conf) elif conf.main_mode() == 2: