mirror of
https://github.com/Cp0204/quark-auto-save.git
synced 2026-01-19 03:20:42 +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={}):
|
||||
self.magic_regex.update(magic_regex)
|
||||
self.magic_variable.update(magic_variable)
|
||||
self.dir_filename_list = []
|
||||
self.dir_filename_dict = {}
|
||||
|
||||
def set_taskname(self, taskname):
|
||||
"""设置任务名称"""
|
||||
@ -281,7 +281,7 @@ class MagicRename:
|
||||
return name.replace(keyword, f"{i:02d}") # 替换为数字,方便排序
|
||||
return name
|
||||
|
||||
def sort_file_list(self, file_list, dir_filename_list=[]):
|
||||
def sort_file_list(self, file_list, dir_filename_dict={}):
|
||||
"""文件列表统一排序,给{I+}赋值"""
|
||||
filename_list = [
|
||||
f["file_name_re"]
|
||||
@ -289,20 +289,21 @@ class MagicRename:
|
||||
if f.get("file_name_re") and not f["dir"]
|
||||
]
|
||||
# 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}")
|
||||
# 合并目录文件列表
|
||||
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)
|
||||
# print(f"filename_list_sort: {filename_list}")
|
||||
for file in file_list:
|
||||
if file.get("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(
|
||||
match.group(),
|
||||
str(filename_list.index(file["file_name_re"]) + 1).zfill(
|
||||
match.group().count("I")
|
||||
),
|
||||
str(i).zfill(match.group().count("I")),
|
||||
file["file_name_re"],
|
||||
)
|
||||
|
||||
@ -310,7 +311,7 @@ class MagicRename:
|
||||
"""设置目录文件列表"""
|
||||
if not file_list:
|
||||
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.sort()
|
||||
if match := re.search(r"\{I+\}", replace):
|
||||
@ -330,7 +331,7 @@ class MagicRename:
|
||||
# 目录文件列表
|
||||
for filename in filename_list:
|
||||
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)
|
||||
)
|
||||
# print(f"filename_list: {self.filename_list}")
|
||||
@ -793,7 +794,7 @@ class Quark:
|
||||
self.recycle_remove(record_id_list)
|
||||
return save_file
|
||||
else:
|
||||
return False
|
||||
return []
|
||||
except Exception as e:
|
||||
print(f"转存测试失败: {str(e)}")
|
||||
|
||||
@ -894,8 +895,8 @@ class Quark:
|
||||
dir_filename_list,
|
||||
(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"]
|
||||
need_save_list.append(share_file)
|
||||
else:
|
||||
@ -954,11 +955,7 @@ class Quark:
|
||||
if query_task_return["code"] == 0:
|
||||
# 建立目录树
|
||||
for index, item in enumerate(need_save_list):
|
||||
icon = (
|
||||
"📁"
|
||||
if item["dir"] == True
|
||||
else "🎞️" if item["obj_category"] == "video" else ""
|
||||
)
|
||||
icon = self._get_file_icon(item)
|
||||
tree.create_node(
|
||||
f"{icon}{item['file_name_re']}",
|
||||
item["fid"],
|
||||
@ -986,13 +983,27 @@ class Quark:
|
||||
for child in tree.children(node_id):
|
||||
file = child.data
|
||||
if file.get("is_dir"):
|
||||
self.do_rename(tree, child.identifier)
|
||||
if file.get("file_name_re") and file["file_name_re"] != file["file_name"]:
|
||||
# self.do_rename(tree, child.identifier)
|
||||
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"])
|
||||
print(f"重命名:{file['file_name']} → {file['file_name_re']}")
|
||||
if rename_ret["code"] != 0:
|
||||
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):
|
||||
# 验证账号
|
||||
|
||||
Loading…
Reference in New Issue
Block a user