fix list_torrents

This commit is contained in:
jxxghp 2023-06-06 10:58:57 +08:00
parent a7251ecf0c
commit e8178a1f55
3 changed files with 51 additions and 5 deletions

View File

@ -131,7 +131,7 @@ class _ModuleBase(metaclass=ABCMeta):
""" """
pass pass
def list_torrents(self, status: TorrentStatus) -> List[dict]: def list_torrents(self, status: TorrentStatus) -> Optional[List[dict]]:
""" """
获取下载器种子列表 获取下载器种子列表
:param status: 种子状态 :param status: 种子状态
@ -139,10 +139,10 @@ class _ModuleBase(metaclass=ABCMeta):
""" """
pass pass
def remove_torrents(self, status: Union[str, list]) -> bool: def remove_torrents(self, hashs: Union[str, list]) -> bool:
""" """
删除下载器种子 删除下载器种子
:param status: 种子状态 :param hashs: 种子Hash
:return: bool :return: bool
""" """
pass pass

View File

@ -1,10 +1,11 @@
from pathlib import Path from pathlib import Path
from typing import Set, Tuple, Optional, Union from typing import Set, Tuple, Optional, Union, List
from app.core import settings, MetaInfo from app.core import settings, MetaInfo
from app.modules import _ModuleBase from app.modules import _ModuleBase
from app.modules.qbittorrent.qbittorrent import Qbittorrent from app.modules.qbittorrent.qbittorrent import Qbittorrent
from app.utils.string import StringUtils from app.utils.string import StringUtils
from app.utils.types import TorrentStatus
class QbittorrentModule(_ModuleBase): class QbittorrentModule(_ModuleBase):
@ -73,3 +74,25 @@ class QbittorrentModule(_ModuleBase):
return torrent_hash, f"添加下载成功,已选择集数:{sucess_epidised}" return torrent_hash, f"添加下载成功,已选择集数:{sucess_epidised}"
else: else:
return torrent_hash, "添加下载成功" return torrent_hash, "添加下载成功"
def list_torrents(self, status: TorrentStatus) -> Optional[List[dict]]:
"""
获取下载器种子列表
:param status: 种子状态
:return: 下载器中符合状态的种子列表
"""
if status == TorrentStatus.COMPLETE:
torrents = self.qbittorrent.get_completed_torrents()
elif status == TorrentStatus.DOWNLOADING:
torrents = self.qbittorrent.get_downloading_torrents()
else:
return None
return torrents
def remove_torrents(self, hashs: Union[str, list]) -> bool:
"""
删除下载器种子
:param hashs: 种子Hash
:return: bool
"""
return self.qbittorrent.delete_torrents(delete_file=True, ids=hashs)

View File

@ -1,9 +1,10 @@
from pathlib import Path from pathlib import Path
from typing import Set, Tuple, Optional, Union from typing import Set, Tuple, Optional, Union, List
from app.core import settings, MetaInfo from app.core import settings, MetaInfo
from app.modules import _ModuleBase from app.modules import _ModuleBase
from app.modules.transmission.transmission import Transmission from app.modules.transmission.transmission import Transmission
from app.utils.types import TorrentStatus
class TransmissionModule(_ModuleBase): class TransmissionModule(_ModuleBase):
@ -68,3 +69,25 @@ class TransmissionModule(_ModuleBase):
self.transmission.start_torrents(torrent_hash) self.transmission.start_torrents(torrent_hash)
else: else:
return torrent_hash, "添加下载任务成功" return torrent_hash, "添加下载任务成功"
def list_torrents(self, status: TorrentStatus) -> Optional[List[dict]]:
"""
获取下载器种子列表
:param status: 种子状态
:return: 下载器中符合状态的种子列表
"""
if status == TorrentStatus.COMPLETE:
torrents = self.transmission.get_completed_torrents()
elif status == TorrentStatus.DOWNLOADING:
torrents = self.transmission.get_completed_torrents()
else:
return None
return torrents
def remove_torrents(self, hashs: Union[str, list]) -> bool:
"""
删除下载器种子
:param hashs: 种子Hash
:return: bool
"""
return self.transmission.delete_torrents(delete_file=True, ids=hashs)