From 31ca41828ed9243dd6b46cfb31031c32771bad52 Mon Sep 17 00:00:00 2001 From: tonser Date: Thu, 29 Feb 2024 02:09:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dtr=20=E9=80=89=E4=B8=AD?= =?UTF-8?q?=E7=A7=8D=E5=AD=90=E4=B8=8B=E8=BD=BD=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/modules/transmission/__init__.py | 5 +++++ app/modules/transmission/transmission.py | 14 ++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/app/modules/transmission/__init__.py b/app/modules/transmission/__init__.py index 505311e7..3cc5c452 100644 --- a/app/modules/transmission/__init__.py +++ b/app/modules/transmission/__init__.py @@ -121,20 +121,25 @@ class TransmissionModule(_ModuleBase): return torrent_hash, "获取种子文件失败,下载任务可能在暂停状态" # 需要的文件信息 file_ids = [] + unwanted_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.episode_list: + unwanted_file_ids.append(file_id) continue selected = set(meta_info.episode_list).issubset(set(episodes)) if not selected: + unwanted_file_ids.append(file_id) continue file_ids.append(file_id) # 选择文件 self.transmission.set_files(torrent_hash, file_ids) + self.transmission.set_unwanted_files(torrent_hash, unwanted_file_ids) # 开始任务 self.transmission.start_torrents(torrent_hash) + return torrent_hash, "添加下载任务成功" else: return torrent_hash, "添加下载任务成功" diff --git a/app/modules/transmission/transmission.py b/app/modules/transmission/transmission.py index 233fef11..2822946f 100644 --- a/app/modules/transmission/transmission.py +++ b/app/modules/transmission/transmission.py @@ -242,6 +242,19 @@ class Transmission: logger.error(f"设置下载文件状态出错:{str(err)}") return False + def set_unwanted_files(self, tid: str, file_ids: list) -> bool: + """ + 设置下载文件的状态 + """ + if not self.trc: + return False + try: + self.trc.change_torrent(ids=tid, files_unwanted=file_ids) + return True + except Exception as err: + logger.error(f"设置下载文件状态出错:{str(err)}") + return False + def transfer_info(self) -> Optional[SessionStats]: """ 获取传输信息 @@ -359,3 +372,4 @@ class Transmission: except Exception as err: logger.error(f"修改tracker出错:{str(err)}") return False +