From 65e5dad44b7f494f2546dde68bc14a26b085b49a Mon Sep 17 00:00:00 2001 From: jxxghp Date: Sun, 13 Jul 2025 14:14:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=A7=BB=E5=8A=A8=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E4=B8=8B=E7=9A=84=E7=A7=8D=E5=AD=90=E5=92=8C=E6=AE=8B?= =?UTF-8?q?=E7=95=99=E7=9B=AE=E5=BD=95=E5=88=A0=E9=99=A4=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/chain/transfer.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/app/chain/transfer.py b/app/chain/transfer.py index 2f5a00ac..ee4ba0df 100755 --- a/app/chain/transfer.py +++ b/app/chain/transfer.py @@ -498,18 +498,22 @@ class TransferChain(ChainBase, metaclass=Singleton): if transferinfo.transfer_type in ["move"]: # 所有成功的业务 tasks = self.jobview.success_tasks(task.mediainfo, task.meta.begin_season) - # 记录已处理的种子hash - processed_hashes = set() storagechain = StorageChain() for t in tasks: # 下载器hash - if t.download_hash and t.download_hash not in processed_hashes: - processed_hashes.add(t.download_hash) - if self.remove_torrents(t.download_hash, downloader=t.downloader): - logger.info(f"移动模式删除种子成功:{t.download_hash} ") - # 删除残留目录 - if t.fileitem: - storagechain.delete_media_file(t.fileitem, delete_self=False) + if t.download_hash: + # 检查种子目录下是否还有有效媒体文件 + if t.fileitem: + remain_files = storagechain.list_files(t.fileitem, recursion=True) + has_media = any( + f.extension and f.extension.lower() in [ext.lstrip('.') for ext in self.all_exts] + for f in remain_files if f.type == "file") + if not has_media: + if self.remove_torrents(t.download_hash, downloader=t.downloader): + logger.info(f"移动模式删除种子成功:{t.download_hash} ") + storagechain.delete_media_file(t.fileitem, delete_self=False) + else: + logger.info(f"目录 {t.fileitem.path} 还有未整理的媒体文件,暂不删除种子和残留目录") # 整理完成且有成功的任务时 if self.jobview.is_finished(task): __do_finished()