feat(module): add type-checking methods

This commit is contained in:
InfinityPacer
2024-10-01 15:28:26 +08:00
parent 80ada2232e
commit 4b6d269230
3 changed files with 149 additions and 5 deletions
+39 -1
View File
@@ -1,5 +1,7 @@
from typing import Optional
from app.helper.servicebase import ServiceBaseHelper
from app.schemas import MediaServerConf
from app.schemas import MediaServerConf, ServiceInfo
from app.schemas.types import SystemConfigKey
@@ -14,3 +16,39 @@ class MediaServerHelper(ServiceBaseHelper[MediaServerConf]):
conf_type=MediaServerConf,
modules=["PlexModule", "EmbyModule", "JellyfinModule"]
)
def is_plex(self, service: Optional[ServiceInfo] = None, name: Optional[str] = None) -> bool:
"""
判断指定的媒体服务器是否为 Plex 类型,需要传入 `service` 或 `name` 中的任一参数
:param service: 要判断的服务信息
:param name: 服务的名称
:return: 如果服务类型为 plex,返回 True;否则返回 False。
"""
if not service:
service = self.get_service(name=name)
return service.type == "plex" if service else False
def is_emby(self, service: Optional[ServiceInfo] = None, name: Optional[str] = None) -> bool:
"""
判断指定的媒体服务器是否为 Emby 类型,需要传入 `service` 或 `name` 中的任一参数
:param service: 要判断的服务信息
:param name: 服务的名称
:return: 如果服务类型为 emby,返回 True;否则返回 False。
"""
if not service:
service = self.get_service(name=name)
return service.type == "emby" if service else False
def is_jellyfin(self, service: Optional[ServiceInfo] = None, name: Optional[str] = None) -> bool:
"""
判断指定的媒体服务器是否为 Jellyfin 类型,需要传入 `service` 或 `name` 中的任一参数
:param service: 要判断的服务信息
:param name: 服务的名称
:return: 如果服务类型为 jellyfin,返回 True;否则返回 False。
"""
if not service:
service = self.get_service(name=name)
return service.type == "jellyfin" if service else False