parent
16cce73f82
commit
4b655dfac4
@ -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,
|
||||||
|
@ -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, ""
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
# 创建时间
|
# 创建时间
|
||||||
|
Loading…
x
Reference in New Issue
Block a user