From f737f1287b00e82aa6556ba79b3039c3e4f447b6 Mon Sep 17 00:00:00 2001 From: wumode Date: Fri, 13 Jun 2025 02:29:55 +0800 Subject: [PATCH] =?UTF-8?q?fix(api):=20=E6=97=A0=E6=B3=95=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E9=9D=9E=E9=BB=98=E8=AE=A4=E4=B8=8B=E8=BD=BD=E5=99=A8?= =?UTF-8?q?=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/endpoints/download.py | 12 ++++++------ app/chain/download.py | 10 +++++----- app/modules/transmission/__init__.py | 2 +- app/modules/transmission/transmission.py | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/app/api/endpoints/download.py b/app/api/endpoints/download.py index 62d4a8c6..fa99ca59 100644 --- a/app/api/endpoints/download.py +++ b/app/api/endpoints/download.py @@ -94,22 +94,22 @@ def add( @router.get("/start/{hashString}", summary="开始任务", response_model=schemas.Response) def start( - hashString: str, + hashString: str, name: Optional[str] = None, _: schemas.TokenPayload = Depends(verify_token)) -> Any: """ 开如下载任务 """ - ret = DownloadChain().set_downloading(hashString, "start") + ret = DownloadChain().set_downloading(hashString, "start", name=name) return schemas.Response(success=True if ret else False) @router.get("/stop/{hashString}", summary="暂停任务", response_model=schemas.Response) -def stop(hashString: str, +def stop(hashString: str, name: Optional[str] = None, _: schemas.TokenPayload = Depends(verify_token)) -> Any: """ 暂停下载任务 """ - ret = DownloadChain().set_downloading(hashString, "stop") + ret = DownloadChain().set_downloading(hashString, "stop", name=name) return schemas.Response(success=True if ret else False) @@ -125,10 +125,10 @@ def clients(_: schemas.TokenPayload = Depends(verify_token)) -> Any: @router.delete("/{hashString}", summary="删除下载任务", response_model=schemas.Response) -def delete(hashString: str, +def delete(hashString: str, name: Optional[str] = None, _: schemas.TokenPayload = Depends(verify_token)) -> Any: """ 删除下载任务 """ - ret = DownloadChain().remove_downloading(hashString) + ret = DownloadChain().remove_downloading(hashString, name=name) return schemas.Response(success=True if ret else False) diff --git a/app/chain/download.py b/app/chain/download.py index d15ca114..4e91c789 100644 --- a/app/chain/download.py +++ b/app/chain/download.py @@ -939,21 +939,21 @@ class DownloadChain(ChainBase): ret_torrents.append(torrent) return ret_torrents - def set_downloading(self, hash_str, oper: str) -> bool: + def set_downloading(self, hash_str, oper: str, name: Optional[str] = None) -> bool: """ 控制下载任务 start/stop """ if oper == "start": - return self.start_torrents(hashs=[hash_str]) + return self.start_torrents(hashs=[hash_str], downloader=name) elif oper == "stop": - return self.stop_torrents(hashs=[hash_str]) + return self.stop_torrents(hashs=[hash_str], downloader=name) return False - def remove_downloading(self, hash_str: str) -> bool: + def remove_downloading(self, hash_str: str, name: Optional[str] = None) -> bool: """ 删除下载任务 """ - return self.remove_torrents(hashs=[hash_str]) + return self.remove_torrents(hashs=[hash_str], downloader=name) @eventmanager.register(EventType.DownloadFileDeleted) def download_file_deleted(self, event: Event): diff --git a/app/modules/transmission/__init__.py b/app/modules/transmission/__init__.py index e7095f57..f92c1aac 100644 --- a/app/modules/transmission/__init__.py +++ b/app/modules/transmission/__init__.py @@ -355,7 +355,7 @@ class TransmissionModule(_ModuleBase, _DownloaderBase[Transmission]): server: Transmission = self.get_instance(downloader) if not server: return None - return server.start_torrents(ids=hashs) + return server.stop_torrents(ids=hashs) def torrent_files(self, tid: str, downloader: Optional[str] = None) -> Optional[List[File]]: """ diff --git a/app/modules/transmission/transmission.py b/app/modules/transmission/transmission.py index 6f6437f8..6f38d13b 100755 --- a/app/modules/transmission/transmission.py +++ b/app/modules/transmission/transmission.py @@ -134,7 +134,7 @@ class Transmission: return None try: torrents, error = self.get_torrents(ids=ids, - status=["downloading", "download_pending"], + status=["downloading", "download_pending", "stopped"], tags=tags) return None if error else torrents or [] except Exception as err: