From 53195457c70ada792d35492e5b14045234c68add Mon Sep 17 00:00:00 2001 From: jxxghp Date: Thu, 12 Sep 2024 15:13:58 +0800 Subject: [PATCH] fix module test --- app/core/module.py | 7 +++++-- app/modules/__init__.py | 2 +- app/modules/emby/__init__.py | 4 ++-- app/modules/jellyfin/__init__.py | 4 ++-- app/modules/plex/__init__.py | 4 ++-- app/modules/qbittorrent/__init__.py | 4 +++- app/modules/slack/__init__.py | 4 +++- app/modules/synologychat/__init__.py | 6 ++++-- app/modules/telegram/__init__.py | 4 +++- app/modules/transmission/__init__.py | 4 ++-- app/modules/vocechat/__init__.py | 4 +++- app/modules/wechat/__init__.py | 4 +++- 12 files changed, 33 insertions(+), 18 deletions(-) diff --git a/app/core/module.py b/app/core/module.py index 23489fde..ce7a7c4f 100644 --- a/app/core/module.py +++ b/app/core/module.py @@ -73,11 +73,14 @@ class ModuleManager(metaclass=Singleton): 测试模块 """ if modleid not in self._running_modules: - return False, "模块未加载,请检查参数设置" + return False, "" module = self._running_modules[modleid] if hasattr(module, "test") \ and ObjectUtils.check_method(getattr(module, "test")): - return module.test() + result = module.test() + if not result: + return False, "" + return result return True, "模块不支持测试" @staticmethod diff --git a/app/modules/__init__.py b/app/modules/__init__.py index db4feacf..4b512606 100644 --- a/app/modules/__init__.py +++ b/app/modules/__init__.py @@ -42,7 +42,7 @@ class _ModuleBase(metaclass=ABCMeta): pass @abstractmethod - def test(self) -> Tuple[bool, str]: + def test(self) -> Optional[Tuple[bool, str]]: """ 模块测试, 返回测试结果和错误信息 """ diff --git a/app/modules/emby/__init__.py b/app/modules/emby/__init__.py index bc5b17f4..9d863cd2 100644 --- a/app/modules/emby/__init__.py +++ b/app/modules/emby/__init__.py @@ -31,12 +31,12 @@ class EmbyModule(_ModuleBase, _MediaServerBase): def stop(self): pass - def test(self) -> Tuple[bool, str]: + def test(self) -> Optional[Tuple[bool, str]]: """ 测试模块连接性 """ if not self._servers: - return False, "未配置Emby服务器" + return None for name, server in self._servers.items(): if server.is_inactive(): server.reconnect() diff --git a/app/modules/jellyfin/__init__.py b/app/modules/jellyfin/__init__.py index 1ae85709..a2080b57 100644 --- a/app/modules/jellyfin/__init__.py +++ b/app/modules/jellyfin/__init__.py @@ -44,12 +44,12 @@ class JellyfinModule(_ModuleBase, _MediaServerBase): def stop(self): pass - def test(self) -> Tuple[bool, str]: + def test(self) -> Optional[Tuple[bool, str]]: """ 测试模块连接性 """ if not self._servers: - return False, "未配置Jellyfin服务器" + return None for name, server in self._servers.items(): if server.is_inactive(): server.reconnect() diff --git a/app/modules/plex/__init__.py b/app/modules/plex/__init__.py index 97b5426f..fbc15c34 100644 --- a/app/modules/plex/__init__.py +++ b/app/modules/plex/__init__.py @@ -31,12 +31,12 @@ class PlexModule(_ModuleBase, _MediaServerBase): def stop(self): pass - def test(self) -> Tuple[bool, str]: + def test(self) -> Optional[Tuple[bool, str]]: """ 测试模块连接性 """ if not self._servers: - return False, "未配置Plex服务器" + return None for name, server in self._servers.items(): if server.is_inactive(): server.reconnect() diff --git a/app/modules/qbittorrent/__init__.py b/app/modules/qbittorrent/__init__.py index ae964d0e..0b0c8585 100644 --- a/app/modules/qbittorrent/__init__.py +++ b/app/modules/qbittorrent/__init__.py @@ -43,10 +43,12 @@ class QbittorrentModule(_ModuleBase, _DownloaderBase): def stop(self): pass - def test(self) -> Tuple[bool, str]: + def test(self) -> Optional[Tuple[bool, str]]: """ 测试模块连接性 """ + if not self._servers: + return None for name, server in self._servers.items(): if server.is_inactive(): server.reconnect() diff --git a/app/modules/slack/__init__.py b/app/modules/slack/__init__.py index 531a4277..1b7935f8 100644 --- a/app/modules/slack/__init__.py +++ b/app/modules/slack/__init__.py @@ -38,10 +38,12 @@ class SlackModule(_ModuleBase, _MessageBase): for client in self._clients.values(): client.stop() - def test(self) -> Tuple[bool, str]: + def test(self) -> Optional[Tuple[bool, str]]: """ 测试模块连接性 """ + if not self._clients: + return None for name, client in self._clients.items(): state = client.get_state() if not state: diff --git a/app/modules/synologychat/__init__.py b/app/modules/synologychat/__init__.py index f5d2e767..ac861c73 100644 --- a/app/modules/synologychat/__init__.py +++ b/app/modules/synologychat/__init__.py @@ -20,7 +20,7 @@ class SynologyChatModule(_ModuleBase, _MessageBase): self._configs = {} self._clients = {} for client in clients: - if client.type == "telegram" and client.enabled: + if client.type == "slack" and client.enabled: self._configs[client.name] = client self._clients[client.name] = SynologyChat(**client.config) @@ -31,10 +31,12 @@ class SynologyChatModule(_ModuleBase, _MessageBase): def stop(self): pass - def test(self) -> Tuple[bool, str]: + def test(self) -> Optional[Tuple[bool, str]]: """ 测试模块连接性 """ + if not self._clients: + return None for name, client in self._clients.items(): state = client.get_state() if not state: diff --git a/app/modules/telegram/__init__.py b/app/modules/telegram/__init__.py index 6a88548c..c0b8e78f 100644 --- a/app/modules/telegram/__init__.py +++ b/app/modules/telegram/__init__.py @@ -37,10 +37,12 @@ class TelegramModule(_ModuleBase, _MessageBase): for client in self._clients.values(): client.stop() - def test(self) -> Tuple[bool, str]: + def test(self) -> Optional[Tuple[bool, str]]: """ 测试模块连接性 """ + if not self._clients: + return None for name, client in self._clients.items(): state = client.get_state() if not state: diff --git a/app/modules/transmission/__init__.py b/app/modules/transmission/__init__.py index 4c8efe9c..83418278 100644 --- a/app/modules/transmission/__init__.py +++ b/app/modules/transmission/__init__.py @@ -40,12 +40,12 @@ class TransmissionModule(_ModuleBase, _DownloaderBase): def stop(self): pass - def test(self) -> Tuple[bool, str]: + def test(self) -> Optional[Tuple[bool, str]]: """ 测试模块连接性 """ if not self._servers: - return False, "未配置Transmission下载器" + return None for name, server in self._servers.items(): if server.is_inactive(): server.reconnect() diff --git a/app/modules/vocechat/__init__.py b/app/modules/vocechat/__init__.py index 3e0e2496..5ce9ce03 100644 --- a/app/modules/vocechat/__init__.py +++ b/app/modules/vocechat/__init__.py @@ -33,10 +33,12 @@ class VoceChatModule(_ModuleBase, _MessageBase): def stop(self): pass - def test(self) -> Tuple[bool, str]: + def test(self) -> Optional[Tuple[bool, str]]: """ 测试模块连接性 """ + if not self._clients: + return None for name, client in self._clients.items(): state = client.get_state() if not state: diff --git a/app/modules/wechat/__init__.py b/app/modules/wechat/__init__.py index 32f44e1a..baf358ce 100644 --- a/app/modules/wechat/__init__.py +++ b/app/modules/wechat/__init__.py @@ -34,10 +34,12 @@ class WechatModule(_ModuleBase, _MessageBase): def stop(self): pass - def test(self) -> Tuple[bool, str]: + def test(self) -> Optional[Tuple[bool, str]]: """ 测试模块连接性 """ + if not self._clients: + return None for name, client in self._clients.items(): state = client.get_state() if not state: