fix 重连机制

This commit is contained in:
jxxghp
2023-09-03 21:59:18 +08:00
parent bbc27bbe19
commit 7eb77875f1
10 changed files with 46 additions and 6 deletions

View File

@ -28,7 +28,7 @@ class EmbyModule(_ModuleBase):
定时任务每10分钟调用一次
"""
# 定时重连
if not self.emby.user:
if not self.emby.is_inactive():
self.emby = Emby()
def user_authenticate(self, name: str, password: str) -> Optional[str]:

View File

@ -27,6 +27,14 @@ class Emby(metaclass=Singleton):
self.user = self.get_user()
self.folders = self.get_emby_folders()
def is_inactive(self) -> bool:
"""
判断是否需要重连
"""
if not self._host or not self._apikey:
return False
return True if not self.user else False
def get_emby_folders(self) -> List[dict]:
"""
获取Emby媒体库路径列表

View File

@ -25,7 +25,7 @@ class JellyfinModule(_ModuleBase):
定时任务每10分钟调用一次
"""
# 定时重连
if not self.jellyfin.user:
if not self.jellyfin.is_inactive():
self.jellyfin = Jellyfin()
def stop(self):

View File

@ -25,6 +25,14 @@ class Jellyfin(metaclass=Singleton):
self.user = self.get_user()
self.serverid = self.get_server_id()
def is_inactive(self) -> bool:
"""
判断是否需要重连
"""
if not self._host or not self._apikey:
return False
return True if not self.user else False
def __get_jellyfin_librarys(self) -> List[dict]:
"""
获取Jellyfin媒体库的信息

View File

@ -28,7 +28,7 @@ class PlexModule(_ModuleBase):
定时任务每10分钟调用一次
"""
# 定时重连
if not self.plex.get_plex():
if not self.plex.is_inactive():
self.plex = Plex()
def webhook_parser(self, body: Any, form: Any, args: Any) -> WebhookEventInfo:

View File

@ -30,6 +30,14 @@ class Plex(metaclass=Singleton):
self._plex = None
logger.error(f"Plex服务器连接失败{str(e)}")
def is_inactive(self) -> bool:
"""
判断是否需要重连
"""
if not self._host or not self._token:
return False
return True if not self._plex else False
def get_librarys(self):
"""
获取媒体服务器所有媒体库列表

View File

@ -33,7 +33,7 @@ class QbittorrentModule(_ModuleBase):
定时任务每10分钟调用一次
"""
# 定时重连
if not self.qbittorrent.qbc:
if self.qbittorrent.is_inactive():
self.qbittorrent = Qbittorrent()
def download(self, torrent_path: Path, download_dir: Path, cookie: str,

View File

@ -27,6 +27,14 @@ class Qbittorrent(metaclass=Singleton):
if self._host and self._port:
self.qbc = self.__login_qbittorrent()
def is_inactive(self) -> bool:
"""
判断是否需要重连
"""
if not self._host or not self._port:
return False
return True if not self.qbc else False
def __login_qbittorrent(self) -> Optional[Client]:
"""
连接qbittorrent

View File

@ -33,7 +33,7 @@ class TransmissionModule(_ModuleBase):
定时任务每10分钟调用一次
"""
# 定时重连
if not self.transmission.trc:
if not self.transmission.is_inactive():
self.transmission = Transmission()
def download(self, torrent_path: Path, download_dir: Path, cookie: str,

View File

@ -28,7 +28,7 @@ class Transmission(metaclass=Singleton):
self._host, self._port = StringUtils.get_domain_address(address=settings.TR_HOST, prefix=False)
self._username = settings.TR_USER
self._password = settings.TR_PASSWORD
if self._host and self._port and self._username and self._password:
if self._host and self._port:
self.trc = self.__login_transmission()
def __login_transmission(self) -> Optional[Client]:
@ -48,6 +48,14 @@ class Transmission(metaclass=Singleton):
logger.error(f"transmission 连接出错:{err}")
return None
def is_inactive(self) -> bool:
"""
判断是否需要重连
"""
if not self._host or not self._port:
return False
return True if not self.trc else False
def get_torrents(self, ids: Union[str, list] = None, status: Union[str, list] = None,
tags: Union[str, list] = None) -> Tuple[List[Torrent], bool]:
"""