fix #982
This commit is contained in:
jxxghp 2023-10-28 17:41:22 +08:00
parent 16cce73f82
commit 4b655dfac4
4 changed files with 20 additions and 9 deletions

View File

@ -75,10 +75,14 @@ def delete_transfer_history(history_in: schemas.TransferHistory,
return schemas.Response(success=False, msg="记录不存在") return schemas.Response(success=False, msg="记录不存在")
# 册除媒体库文件 # 册除媒体库文件
if deletedest and history.dest: if deletedest and history.dest:
TransferChain().delete_files(Path(history.dest)) state, msg = TransferChain().delete_files(Path(history.dest))
if not state:
return schemas.Response(success=False, msg=msg)
# 删除源文件 # 删除源文件
if deletesrc and history.src: if deletesrc and history.src:
TransferChain().delete_files(Path(history.src)) state, msg = TransferChain().delete_files(Path(history.src))
if not state:
return schemas.Response(success=False, msg=msg)
# 发送事件 # 发送事件
eventmanager.send_event( eventmanager.send_event(
EventType.DownloadFileDeleted, EventType.DownloadFileDeleted,

View File

@ -617,14 +617,15 @@ class TransferChain(ChainBase):
title=msg_title, text=msg_str, image=mediainfo.get_message_image())) title=msg_title, text=msg_str, image=mediainfo.get_message_image()))
@staticmethod @staticmethod
def delete_files(path: Path): def delete_files(path: Path) -> Tuple[bool, str]:
""" """
删除转移后的文件以及空目录 删除转移后的文件以及空目录
:param path: 文件路径 :param path: 文件路径
:return: 成功标识错误信息
""" """
logger.info(f"开始删除文件以及空目录:{path} ...") logger.info(f"开始删除文件以及空目录:{path} ...")
if not path.exists(): if not path.exists():
return return True, f"文件或目录不存在:{path}"
if path.is_file(): if path.is_file():
# 删除文件、nfo、jpg等同名文件 # 删除文件、nfo、jpg等同名文件
pattern = path.stem.replace('[', '?').replace(']', '?') pattern = path.stem.replace('[', '?').replace(']', '?')
@ -636,7 +637,7 @@ class TransferChain(ChainBase):
elif str(path.parent) == str(path.root): elif str(path.parent) == str(path.root):
# 根目录,不删除 # 根目录,不删除
logger.warn(f"根目录 {path} 不能删除!") logger.warn(f"根目录 {path} 不能删除!")
return return False, f"根目录 {path} 不能删除!"
else: else:
# 非根目录,才删除目录 # 非根目录,才删除目录
shutil.rmtree(path) shutil.rmtree(path)
@ -662,5 +663,10 @@ class TransferChain(ChainBase):
# 父目录非根目录,才删除父目录 # 父目录非根目录,才删除父目录
if not SystemUtils.exits_files(parent_path, settings.RMT_MEDIAEXT): if not SystemUtils.exits_files(parent_path, settings.RMT_MEDIAEXT):
# 当前路径下没有媒体文件则删除 # 当前路径下没有媒体文件则删除
shutil.rmtree(parent_path) try:
shutil.rmtree(parent_path)
except Exception as e:
logger.error(f"删除目录 {parent_path} 失败:{str(e)}")
return False, f"删除目录 {parent_path} 失败:{str(e)}"
logger.warn(f"目录 {parent_path} 已删除") logger.warn(f"目录 {parent_path} 已删除")
return True, ""

View File

@ -159,7 +159,6 @@ class AutoClean(_PluginBase):
# 输出分组结果 # 输出分组结果
for key, downloadhis_list in downloadhis_grouped_dict.items(): for key, downloadhis_list in downloadhis_grouped_dict.items():
logger.info(f"开始清理 {key}") logger.info(f"开始清理 {key}")
result = []
del_transferhis_cnt = 0 del_transferhis_cnt = 0
del_media_name = downloadhis_list[0].title del_media_name = downloadhis_list[0].title
del_media_user = downloadhis_list[0].username del_media_user = downloadhis_list[0].username
@ -208,7 +207,7 @@ class AutoClean(_PluginBase):
f"下载媒体用户 {del_media_user}\n" f"下载媒体用户 {del_media_user}\n"
f"删除历史记录 {del_transferhis_cnt}") f"删除历史记录 {del_transferhis_cnt}")
result.append({ history.append({
"type": del_media_type, "type": del_media_type,
"title": del_media_name, "title": del_media_name,
"year": del_media_year, "year": del_media_year,
@ -219,7 +218,7 @@ class AutoClean(_PluginBase):
}) })
# 保存历史 # 保存历史
self.save_data("history", result) self.save_data("history", history)
def get_state(self) -> bool: def get_state(self) -> bool:
return self._enabled return self._enabled

View File

@ -38,6 +38,8 @@ class DownloadHistory(BaseModel):
torrent_site: Optional[str] = None torrent_site: Optional[str] = None
# 下载用户 # 下载用户
userid: Optional[str] = None userid: Optional[str] = None
# 下载用户名
username: Optional[str] = None
# 下载渠道 # 下载渠道
channel: Optional[str] = None channel: Optional[str] = None
# 创建时间 # 创建时间