From dac718edc8e491f9043feffbbf8695ac74bb6022 Mon Sep 17 00:00:00 2001 From: thsrite Date: Tue, 19 Sep 2023 16:15:05 +0800 Subject: [PATCH] fix 7a5d2101 --- app/chain/transfer.py | 5 ++--- app/utils/system.py | 32 +++++++++++++++++++++++++++++++- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/app/chain/transfer.py b/app/chain/transfer.py index d6becbe0..f7d8f470 100644 --- a/app/chain/transfer.py +++ b/app/chain/transfer.py @@ -603,7 +603,7 @@ class TransferChain(ChainBase): return if path.is_file(): # 删除文件、nfo、jpg - files = glob.glob(f"{Path(path.parent).joinpath(str(path.name).split('.')[0])}*") + files = glob.glob(f"{Path(path.parent).joinpath(path.stem)}*") for file in files: Path(file).unlink() logger.warn(f"文件 {path} 已删除") @@ -620,8 +620,7 @@ class TransferChain(ChainBase): # 需要删除父目录 # 判断当前媒体父路径下是否有媒体文件,如有则无需遍历父级 - files = SystemUtils.list_files(path.parent, settings.RMT_MEDIAEXT) - if not files: + if not SystemUtils.exits_files(path.parent, settings.RMT_MEDIAEXT): # 媒体库二级分类根路径 library_root_names = [ settings.LIBRARY_MOVIE_NAME or '电影', diff --git a/app/utils/system.py b/app/utils/system.py index 36b553bd..2776ccf3 100644 --- a/app/utils/system.py +++ b/app/utils/system.py @@ -106,7 +106,7 @@ class SystemUtils: if directory.is_file(): return [directory] - + if not min_filesize: min_filesize = 0 @@ -122,6 +122,36 @@ class SystemUtils: return files + @staticmethod + def exits_files(directory: Path, extensions: list, min_filesize: int = 0) -> bool: + """ + 判断目录下是否存在指定扩展名的文件 + :return True存在 False不存在 + """ + + if not min_filesize: + min_filesize = 0 + + if not directory.exists(): + return False + + if directory.is_file(): + return True + + if not min_filesize: + min_filesize = 0 + + pattern = r".*(" + "|".join(extensions) + ")$" + + # 遍历目录及子目录 + for path in directory.rglob('**/*'): + if path.is_file() \ + and re.match(pattern, path.name, re.IGNORECASE) \ + and path.stat().st_size >= min_filesize * 1024 * 1024: + return True + + return False + @staticmethod def list_sub_files(directory: Path, extensions: list) -> List[Path]: """