From 94ed3778432a31066e84c69cb407367a1d28e77b Mon Sep 17 00:00:00 2001 From: Attente <19653207+wikrin@users.noreply.github.com> Date: Sun, 27 Oct 2024 23:02:45 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BF=AE=E5=A4=8D=E6=95=B4=E7=90=86?= =?UTF-8?q?=E5=8E=9F=E7=9B=98=E6=8A=A5=E9=94=99=E7=9A=84=E9=97=AE=E9=A2=98?= =?UTF-8?q?=20-=20=E6=B7=BB=E5=8A=A0=E7=B1=BB=E5=9E=8B=E6=B3=A8=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/chain/transfer.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/app/chain/transfer.py b/app/chain/transfer.py index 8a798376..c50776fd 100644 --- a/app/chain/transfer.py +++ b/app/chain/transfer.py @@ -194,7 +194,9 @@ class TransferChain(ChainBase): transfers: Dict[Tuple, TransferInfo] = {} # 待整理文件列表 - file_items = [] + file_items: List[FileItem] = [] + # 蓝光目录列表 + bluray: List[FileItem] = [] # 汇总错误信息 err_msgs: List[str] = [] # 已处理数量 @@ -225,9 +227,13 @@ class TransferChain(ChainBase): if (trans_item.type == "dir" and not (trans_item.storage == "local" and SystemUtils.is_bluray_dir(item_path))): # 遍历获取下载目录所有文件(递归) - file_items = self.storagechain.list_files(trans_item, recursion=True) - if file_items: - file_items.extend(trans_items) + files = self.storagechain.list_files(trans_item, recursion=True) + if files: + file_items.extend(files) + elif (trans_item.storage == "local" and SystemUtils.is_bluray_dir(item_path)): + # 计算目录下文件总大小 + trans_item.size = sum(file.stat().st_size for file in item_path.rglob('*') if file.is_file()) + bluray.append(trans_item) else: # 文件或蓝光目录 file_items.append(trans_item) @@ -240,7 +246,8 @@ class TransferChain(ChainBase): file_items = [f for f in file_items if f.extension and (f".{f.extension.lower()}" in self.all_exts and (not min_filesize or f.size > min_filesize * 1024 * 1024))] - + # BDMV 跳过过滤 + file_items.extend(bluray) if not file_items: logger.warn(f"{fileitem.path} 没有找到可整理的媒体文件") return False, f"{fileitem.name} 没有找到可整理的媒体文件"