diff --git a/app/chain/transfer.py b/app/chain/transfer.py index 30701768..b8de5a8d 100755 --- a/app/chain/transfer.py +++ b/app/chain/transfer.py @@ -660,9 +660,6 @@ class TransferChain(ChainBase, ConfigReloadMixin, metaclass=Singleton): # 删除剩余空目录 StorageChain().delete_media_file(t.fileitem, delete_self=False) - # 清理作业 - self.jobview.remove_job(task) - return ret_status, ret_message def put_to_queue(self, task: TransferTask): @@ -971,11 +968,14 @@ class TransferChain(ChainBase, ConfigReloadMixin, metaclass=Singleton): # 从下载器获取种子列表 if torrents_list := self.list_torrents(status=TorrentStatus.TRANSFER): + seen = set() existing_hashes = self.jobview.get_all_torrent_hashes() torrents = [ torrent for torrent in torrents_list - if torrent.hash not in existing_hashes + if (h := torrent.hash) not in existing_hashes + # 排除多下载器返回的重复种子 + and (h not in seen and (seen.add(h) or True)) ] else: torrents = []