mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-03-20 03:57:30 +08:00
55 lines
2.1 KiB
Python
55 lines
2.1 KiB
Python
from typing import Optional
|
||
|
||
from app.helper.servicebase import ServiceBaseHelper
|
||
from app.schemas import MediaServerConf, ServiceInfo
|
||
from app.schemas.types import SystemConfigKey
|
||
|
||
|
||
class MediaServerHelper(ServiceBaseHelper[MediaServerConf]):
|
||
"""
|
||
媒体服务器帮助类
|
||
"""
|
||
|
||
def __init__(self):
|
||
super().__init__(
|
||
config_key=SystemConfigKey.MediaServers,
|
||
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
|