This commit is contained in:
jxxghp
2024-11-16 08:41:30 +08:00
parent f40a1246ff
commit 44a0e5b4a7
3 changed files with 14 additions and 6 deletions

View File

@@ -111,21 +111,27 @@ class StorageChain(ChainBase):
"""
删除媒体文件,以及不含媒体文件的目录
"""
if fileitem.path == "/" or len(Path(fileitem.path).parts) <= 2:
logger.warn(f"{fileitem.storage}{fileitem.path} 根目录或一级目录不允许删除")
return False
logger.warn(f"正在删除【{fileitem.storage}{fileitem.path}")
state = self.delete_file(fileitem)
if not state:
logger.warn(f"{fileitem.storage}{fileitem.path} 删除失败")
return False
if fileitem.type == "dir":
# 本身是目录不处理父目录
return True
# 上级目录
if mtype and mtype == MediaType.TV:
dir_path = Path(fileitem.path).parent.parent
dir_item = self.get_file_item(storage=fileitem.storage, path=dir_path)
dir_item = self.get_file_item(storage=fileitem.storage, path=Path(fileitem.path).parent.parent)
else:
dir_item = self.get_parent_item(fileitem)
if dir_item:
if dir_item and len(Path(dir_item.path).parts) > 2:
# 不存在其他媒体文件,删除空目录
if not self.any_files(dir_item, extensions=settings.RMT_MEDIAEXT):
exts = settings.RMT_MEDIAEXT + settings.DOWNLOAD_TMPEXT
if self.any_files(dir_item, extensions=exts) is False:
logger.warn(f"{dir_item.storage}{dir_item.path} 不存在其它媒体文件,删除空目录")
return self.delete_file(dir_item)
# 存在媒体文件,返回文件删除状态

View File

@@ -518,7 +518,8 @@ class TransferChain(ChainBase):
folder_item = fileitem
else:
folder_item = self.storagechain.get_parent_item(fileitem)
if folder_item and not self.storagechain.any_files(folder_item, extensions=settings.RMT_MEDIAEXT):
exts = settings.RMT_MEDIAEXT + settings.DOWNLOAD_TMPEXT
if folder_item and self.storagechain.any_files(folder_item, extensions=exts) is False:
logger.warn(f"删除残留空文件夹:【{folder_item.storage}{folder_item.path}")
self.storagechain.delete_file(folder_item)

View File

@@ -482,7 +482,8 @@ class Monitor(metaclass=Singleton):
folder_item = file_item
else:
folder_item = self.storagechain.get_parent_item(file_item)
if folder_item and not self.storagechain.any_files(folder_item, extensions=settings.RMT_MEDIAEXT):
exts = settings.RMT_MEDIAEXT + settings.DOWNLOAD_TMPEXT
if folder_item and self.storagechain.any_files(folder_item, extensions=exts) is False:
logger.warn(f"删除残留空文件夹:【{folder_item.storage}{folder_item.path}")
self.storagechain.delete_file(folder_item)