Compare commits

..

No commits in common. "a7e61cd9376726c12ec08d9b17804231ba7bbba3" and "4c245d2c34d45dec79af67a274b09e80911dc427" have entirely different histories.

View File

@ -218,7 +218,7 @@ class MagicRename:
def __init__(self, magic_regex={}, magic_variable={}): def __init__(self, magic_regex={}, magic_variable={}):
self.magic_regex.update(magic_regex) self.magic_regex.update(magic_regex)
self.magic_variable.update(magic_variable) self.magic_variable.update(magic_variable)
self.dir_filename_dict = {} self.dir_filename_list = []
def set_taskname(self, taskname): def set_taskname(self, taskname):
"""设置任务名称""" """设置任务名称"""
@ -281,7 +281,7 @@ class MagicRename:
return name.replace(keyword, f"{i:02d}") # 替换为数字,方便排序 return name.replace(keyword, f"{i:02d}") # 替换为数字,方便排序
return name return name
def sort_file_list(self, file_list, dir_filename_dict={}): def sort_file_list(self, file_list, dir_filename_list=[]):
"""文件列表统一排序,给{I+}赋值""" """文件列表统一排序,给{I+}赋值"""
filename_list = [ filename_list = [
f["file_name_re"] f["file_name_re"]
@ -289,21 +289,20 @@ class MagicRename:
if f.get("file_name_re") and not f["dir"] if f.get("file_name_re") and not f["dir"]
] ]
# print(f"filename_list_before: {filename_list}") # print(f"filename_list_before: {filename_list}")
dir_filename_dict = dir_filename_dict or self.dir_filename_dict dir_filename_list = dir_filename_list or self.dir_filename_list
# print(f"dir_filename_list: {dir_filename_list}") # print(f"dir_filename_list: {dir_filename_list}")
# 合并目录文件列表 # 合并目录文件列表
filename_list = list(set(filename_list) | set(dir_filename_dict.values())) filename_list = list(set(filename_list) | set(dir_filename_list))
filename_list.sort(key=self._custom_sort_key) filename_list.sort(key=self._custom_sort_key)
# print(f"filename_list_sort: {filename_list}") # print(f"filename_list_sort: {filename_list}")
for file in file_list: for file in file_list:
if file.get("file_name_re"): if file.get("file_name_re"):
if match := re.search(r"\{I+\}", file["file_name_re"]): if match := re.search(r"\{I+\}", file["file_name_re"]):
i = filename_list.index(file["file_name_re"]) + 1
while i in dir_filename_dict.keys():
i += 1
file["file_name_re"] = re.sub( file["file_name_re"] = re.sub(
match.group(), match.group(),
str(i).zfill(match.group().count("I")), str(filename_list.index(file["file_name_re"]) + 1).zfill(
match.group().count("I")
),
file["file_name_re"], file["file_name_re"],
) )
@ -311,7 +310,7 @@ class MagicRename:
"""设置目录文件列表""" """设置目录文件列表"""
if not file_list: if not file_list:
return return
self.dir_filename_dict = {} self.dir_filename_list = []
filename_list = [f["file_name"] for f in file_list if not f["dir"]] filename_list = [f["file_name"] for f in file_list if not f["dir"]]
filename_list.sort() filename_list.sort()
if match := re.search(r"\{I+\}", replace): if match := re.search(r"\{I+\}", replace):
@ -331,7 +330,7 @@ class MagicRename:
# 目录文件列表 # 目录文件列表
for filename in filename_list: for filename in filename_list:
if match := re.match(pattern, filename): if match := re.match(pattern, filename):
self.dir_filename_dict[int(match.group(2))] = ( self.dir_filename_list.append(
match.group(1) + magic_i + match.group(3) match.group(1) + magic_i + match.group(3)
) )
# print(f"filename_list: {self.filename_list}") # print(f"filename_list: {self.filename_list}")
@ -794,7 +793,7 @@ class Quark:
self.recycle_remove(record_id_list) self.recycle_remove(record_id_list)
return save_file return save_file
else: else:
return [] return False
except Exception as e: except Exception as e:
print(f"转存测试失败: {str(e)}") print(f"转存测试失败: {str(e)}")
@ -895,8 +894,8 @@ class Quark:
dir_filename_list, dir_filename_list,
(task.get("ignore_extension") and not share_file["dir"]), (task.get("ignore_extension") and not share_file["dir"]),
): ):
# 文件夹、子目录文件不进行重命名 # 文件夹不进行重命名
if share_file["dir"] or subdir_path: if share_file["dir"]:
share_file["file_name_re"] = share_file["file_name"] share_file["file_name_re"] = share_file["file_name"]
need_save_list.append(share_file) need_save_list.append(share_file)
else: else:
@ -955,7 +954,11 @@ class Quark:
if query_task_return["code"] == 0: if query_task_return["code"] == 0:
# 建立目录树 # 建立目录树
for index, item in enumerate(need_save_list): for index, item in enumerate(need_save_list):
icon = self._get_file_icon(item) icon = (
"📁"
if item["dir"] == True
else "🎞️" if item["obj_category"] == "video" else ""
)
tree.create_node( tree.create_node(
f"{icon}{item['file_name_re']}", f"{icon}{item['file_name_re']}",
item["fid"], item["fid"],
@ -983,27 +986,13 @@ class Quark:
for child in tree.children(node_id): for child in tree.children(node_id):
file = child.data file = child.data
if file.get("is_dir"): if file.get("is_dir"):
# self.do_rename(tree, child.identifier) self.do_rename(tree, child.identifier)
pass if file.get("file_name_re") and file["file_name_re"] != file["file_name"]:
elif file.get("file_name_re") and file["file_name_re"] != file["file_name"]:
rename_ret = self.rename(file["fid"], file["file_name_re"]) rename_ret = self.rename(file["fid"], file["file_name_re"])
print(f"重命名:{file['file_name']}{file['file_name_re']}") print(f"重命名:{file['file_name']}{file['file_name_re']}")
if rename_ret["code"] != 0: if rename_ret["code"] != 0:
print(f" ↑ 失败,{rename_ret['message']}") print(f" ↑ 失败,{rename_ret['message']}")
def _get_file_icon(self, f):
if f.get("dir"):
return "📁"
ico_maps = {
"video": "🎞️",
"image": "🖼️",
"audio": "🎵",
"doc": "📄",
"archive": "📦",
"default": "",
}
return ico_maps.get(f.get("obj_category"), "")
def verify_account(account): def verify_account(account):
# 验证账号 # 验证账号