mirror of
https://github.com/Cp0204/quark-auto-save.git
synced 2026-01-19 11:39:37 +08:00
Compare commits
3 Commits
4c245d2c34
...
a7e61cd937
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a7e61cd937 | ||
|
|
202349b3a9 | ||
|
|
54a1c222c7 |
@ -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_list = []
|
self.dir_filename_dict = {}
|
||||||
|
|
||||||
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_list=[]):
|
def sort_file_list(self, file_list, dir_filename_dict={}):
|
||||||
"""文件列表统一排序,给{I+}赋值"""
|
"""文件列表统一排序,给{I+}赋值"""
|
||||||
filename_list = [
|
filename_list = [
|
||||||
f["file_name_re"]
|
f["file_name_re"]
|
||||||
@ -289,20 +289,21 @@ 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_list = dir_filename_list or self.dir_filename_list
|
dir_filename_dict = dir_filename_dict or self.dir_filename_dict
|
||||||
# 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_list))
|
filename_list = list(set(filename_list) | set(dir_filename_dict.values()))
|
||||||
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(filename_list.index(file["file_name_re"]) + 1).zfill(
|
str(i).zfill(match.group().count("I")),
|
||||||
match.group().count("I")
|
|
||||||
),
|
|
||||||
file["file_name_re"],
|
file["file_name_re"],
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -310,7 +311,7 @@ class MagicRename:
|
|||||||
"""设置目录文件列表"""
|
"""设置目录文件列表"""
|
||||||
if not file_list:
|
if not file_list:
|
||||||
return
|
return
|
||||||
self.dir_filename_list = []
|
self.dir_filename_dict = {}
|
||||||
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):
|
||||||
@ -330,7 +331,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_list.append(
|
self.dir_filename_dict[int(match.group(2))] = (
|
||||||
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}")
|
||||||
@ -793,7 +794,7 @@ class Quark:
|
|||||||
self.recycle_remove(record_id_list)
|
self.recycle_remove(record_id_list)
|
||||||
return save_file
|
return save_file
|
||||||
else:
|
else:
|
||||||
return False
|
return []
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"转存测试失败: {str(e)}")
|
print(f"转存测试失败: {str(e)}")
|
||||||
|
|
||||||
@ -894,8 +895,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"]:
|
if share_file["dir"] or subdir_path:
|
||||||
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:
|
||||||
@ -954,11 +955,7 @@ 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 = (
|
icon = self._get_file_icon(item)
|
||||||
"📁"
|
|
||||||
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"],
|
||||||
@ -986,13 +983,27 @@ 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)
|
||||||
if file.get("file_name_re") and file["file_name_re"] != file["file_name"]:
|
pass
|
||||||
|
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):
|
||||||
# 验证账号
|
# 验证账号
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user