refactor (module): improve the implementation of base classes

This commit is contained in:
InfinityPacer
2024-09-26 19:44:35 +08:00
parent ddfcdf9ce2
commit 5efcd6e6be
12 changed files with 186 additions and 194 deletions

View File

@@ -22,16 +22,16 @@ class TransmissionModule(_ModuleBase, _DownloaderBase):
def init_module(self) -> None:
# 读取下载器配置
self._servers: Dict[str, Transmission] = {}
downloaders = DownloaderHelper().get_downloaders()
if not downloaders:
self._instances: Dict[str, Transmission] = {}
configs = DownloaderHelper().get_downloader_conf()
if not configs:
return
for server in downloaders:
if server.type == "transmission" and server.enabled:
self._servers[server.name] = Transmission(**server.config)
if server.default:
self._default_server_name = server.name
self._default_server = self._servers[server.name]
for conf in configs:
if conf.type == "transmission" and conf.enabled:
self._instances[conf.name] = Transmission(**conf.config)
if conf.default:
self._default_server_name = conf.name
self._default_server = self._instances[conf.name]
@staticmethod
def get_name() -> str:
@@ -44,9 +44,9 @@ class TransmissionModule(_ModuleBase, _DownloaderBase):
"""
测试模块连接性
"""
if not self._servers:
if not self._instances:
return None
for name, server in self._servers.items():
for name, server in self._instances.items():
if server.is_inactive():
server.reconnect()
if not server.transfer_info():
@@ -61,7 +61,7 @@ class TransmissionModule(_ModuleBase, _DownloaderBase):
定时任务每10分钟调用一次
"""
# 定时重连
for name, server in self._servers.items():
for name, server in self._instances.items():
if server.is_inactive():
logger.info(f"Transmission下载器 {name} 连接断开,尝试重连 ...")
server.reconnect()
@@ -100,7 +100,7 @@ class TransmissionModule(_ModuleBase, _DownloaderBase):
return None, None, f"种子文件不存在:{content}"
# 获取下载器
server: Transmission = self.get_server(downloader)
server: Transmission = self.get_instance(downloader)
if not server:
return None
@@ -191,7 +191,7 @@ class TransmissionModule(_ModuleBase, _DownloaderBase):
:return: 下载器中符合状态的种子列表
"""
# 获取下载器
server: Transmission = self.get_server(downloader)
server: Transmission = self.get_instance(downloader)
if not server:
return None
ret_torrents = []
@@ -259,7 +259,7 @@ class TransmissionModule(_ModuleBase, _DownloaderBase):
:param transfer_type: 整理方式
"""
# 获取下载器
server: Transmission = self.get_server(downloader)
server: Transmission = self.get_instance(downloader)
if not server:
return None
# 获取原标签
@@ -291,7 +291,7 @@ class TransmissionModule(_ModuleBase, _DownloaderBase):
:return: bool
"""
# 获取下载器
server: Transmission = self.get_server(downloader)
server: Transmission = self.get_instance(downloader)
if not server:
return None
return server.delete_torrents(delete_file=delete_file, ids=hashs)
@@ -305,7 +305,7 @@ class TransmissionModule(_ModuleBase, _DownloaderBase):
:return: bool
"""
# 获取下载器
server: Transmission = self.get_server(downloader)
server: Transmission = self.get_instance(downloader)
if not server:
return None
return server.start_torrents(ids=hashs)
@@ -319,7 +319,7 @@ class TransmissionModule(_ModuleBase, _DownloaderBase):
:return: bool
"""
# 获取下载器
server: Transmission = self.get_server(downloader)
server: Transmission = self.get_instance(downloader)
if not server:
return None
return server.start_torrents(ids=hashs)
@@ -329,7 +329,7 @@ class TransmissionModule(_ModuleBase, _DownloaderBase):
获取种子文件列表
"""
# 获取下载器
server: Transmission = self.get_server(downloader)
server: Transmission = self.get_instance(downloader)
if not server:
return None
return server.get_files(tid=tid)
@@ -339,12 +339,12 @@ class TransmissionModule(_ModuleBase, _DownloaderBase):
下载器信息
"""
if downloader:
server: Transmission = self.get_server(downloader)
server: Transmission = self.get_instance(downloader)
if not server:
return None
servers = [server]
else:
servers = self._servers.values()
servers = self._instances.values()
# 调用Qbittorrent API查询实时信息
ret_info = []
for server in servers: