From 396961ebad7ab896acdbea0ff14f4c5b84edd86c Mon Sep 17 00:00:00 2001 From: jxxghp Date: Sat, 10 Jun 2023 12:23:24 +0800 Subject: [PATCH] fix tr --- app/modules/transmission/__init__.py | 25 ++++++++---------------- app/modules/transmission/transmission.py | 16 ++------------- 2 files changed, 10 insertions(+), 31 deletions(-) diff --git a/app/modules/transmission/__init__.py b/app/modules/transmission/__init__.py index 78a16df5..6725df65 100644 --- a/app/modules/transmission/__init__.py +++ b/app/modules/transmission/__init__.py @@ -47,34 +47,25 @@ class TransmissionModule(_ModuleBase): return None, f"添加种子任务失败:{torrent_path}" else: torrent_hash = torrent.hashString - torrent_id = torrent.id if is_paused: # 选择文件 torrent_files = self.transmission.get_files(torrent_hash) if not torrent_files: return torrent_hash, "获取种子文件失败,下载任务可能在暂停状态" - # 需要的文件信息 - files_info = {} - # 需要的集清单 - sucess_epidised = [] - + file_ids = [] for torrent_file in torrent_files: file_id = torrent_file.id file_name = torrent_file.name meta_info = MetaInfo(file_name) if not meta_info.get_episode_list(): - selected = False - else: - selected = set(meta_info.get_episode_list()).issubset(set(episodes)) - if selected: - sucess_epidised = list(set(sucess_epidised).union(set(meta_info.get_episode_list()))) - if not files_info.get(torrent_id): - files_info[torrent_id] = {file_id: {'priority': 'normal', 'selected': selected}} - else: - files_info[torrent_id][file_id] = {'priority': 'normal', 'selected': selected} - if sucess_epidised and files_info: - self.transmission.set_files(file_info=files_info) + continue + selected = set(meta_info.get_episode_list()).issubset(set(episodes)) + if not selected: + continue + file_ids.append(file_id) + # 选择文件 + self.transmission.set_files(torrent_hash, file_ids) # 开始任务 self.transmission.start_torrents(torrent_hash) else: diff --git a/app/modules/transmission/transmission.py b/app/modules/transmission/transmission.py index ee970334..790f1af7 100644 --- a/app/modules/transmission/transmission.py +++ b/app/modules/transmission/transmission.py @@ -240,24 +240,12 @@ class Transmission(metaclass=Singleton): else: return None - def set_files(self, **kwargs) -> bool: + def set_files(self, tid: str, file_ids: list) -> bool: """ 设置下载文件的状态 - { - : { - : { - 'priority': , - 'selected': - }, - ... - }, - ... - } """ - if not kwargs.get("file_info"): - return False try: - self.trc.set_files(kwargs.get("file_info")) + self.trc.change_torrent(ids=tid, files_wanted=file_ids) return True except Exception as err: logger.error(f"设置下载文件状态出错:{err}")