优化移动模式下的种子和残留目录删除逻辑

This commit is contained in:
jxxghp
2025-07-13 14:14:24 +08:00
parent e9f02b58b7
commit 65e5dad44b
+13 -9
View File
@@ -498,18 +498,22 @@ class TransferChain(ChainBase, metaclass=Singleton):
if transferinfo.transfer_type in ["move"]: if transferinfo.transfer_type in ["move"]:
# 所有成功的业务 # 所有成功的业务
tasks = self.jobview.success_tasks(task.mediainfo, task.meta.begin_season) tasks = self.jobview.success_tasks(task.mediainfo, task.meta.begin_season)
# 记录已处理的种子hash
processed_hashes = set()
storagechain = StorageChain() storagechain = StorageChain()
for t in tasks: for t in tasks:
# 下载器hash # 下载器hash
if t.download_hash and t.download_hash not in processed_hashes: if t.download_hash:
processed_hashes.add(t.download_hash) # 检查种子目录下是否还有有效媒体文件
if self.remove_torrents(t.download_hash, downloader=t.downloader): if t.fileitem:
logger.info(f"移动模式删除种子成功:{t.download_hash} ") remain_files = storagechain.list_files(t.fileitem, recursion=True)
# 删除残留目录 has_media = any(
if t.fileitem: f.extension and f.extension.lower() in [ext.lstrip('.') for ext in self.all_exts]
storagechain.delete_media_file(t.fileitem, delete_self=False) 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): if self.jobview.is_finished(task):
__do_finished() __do_finished()