This commit is contained in:
jxxghp 2024-01-06 08:46:18 +08:00
parent 2c8a41ebad
commit 2af7abee3c
8 changed files with 35 additions and 35 deletions

View File

@ -125,10 +125,7 @@ def latest(count: int = 18,
""" """
获取媒体服务器最新入库条目 获取媒体服务器最新入库条目
""" """
if not settings.MEDIASERVER: return MediaServerChain().latest(count=count) or []
return []
mediaserver = settings.MEDIASERVER.split(",")[0]
return MediaServerChain().latest(server=mediaserver, count=count)
@router.get("/playing", summary="正在播放条目", response_model=List[schemas.MediaServerPlayItem]) @router.get("/playing", summary="正在播放条目", response_model=List[schemas.MediaServerPlayItem])
@ -137,10 +134,7 @@ def playing(count: int = 12,
""" """
获取媒体服务器正在播放条目 获取媒体服务器正在播放条目
""" """
if not settings.MEDIASERVER: return MediaServerChain().playing(count=count) or []
return []
mediaserver = settings.MEDIASERVER.split(",")[0]
return MediaServerChain().playing(server=mediaserver, count=count)
@router.get("/library", summary="媒体库列表", response_model=List[schemas.MediaServerLibrary]) @router.get("/library", summary="媒体库列表", response_model=List[schemas.MediaServerLibrary])
@ -148,7 +142,4 @@ def library(_: schemas.TokenPayload = Depends(verify_token)) -> Any:
""" """
获取媒体服务器媒体库列表 获取媒体服务器媒体库列表
""" """
if not settings.MEDIASERVER: return MediaServerChain().librarys() or []
return []
mediaserver = settings.MEDIASERVER.split(",")[0]
return MediaServerChain().librarys(server=mediaserver)

View File

@ -20,7 +20,7 @@ class MediaServerChain(ChainBase):
super().__init__() super().__init__()
self.dboper = MediaServerOper() self.dboper = MediaServerOper()
def librarys(self, server: str) -> List[schemas.MediaServerLibrary]: def librarys(self, server: str = None) -> List[schemas.MediaServerLibrary]:
""" """
获取媒体服务器所有媒体库 获取媒体服务器所有媒体库
""" """
@ -44,17 +44,17 @@ class MediaServerChain(ChainBase):
""" """
return self.run_module("mediaserver_tv_episodes", server=server, item_id=item_id) return self.run_module("mediaserver_tv_episodes", server=server, item_id=item_id)
def playing(self, server: str, count: int = 20) -> List[schemas.MediaServerPlayItem]: def playing(self, count: int = 20, server: str = None) -> List[schemas.MediaServerPlayItem]:
""" """
获取媒体服务器正在播放信息 获取媒体服务器正在播放信息
""" """
return self.run_module("mediaserver_playing", server=server, count=count) return self.run_module("mediaserver_playing", count=count, server=server)
def latest(self, server: str, count: int = 20) -> List[schemas.MediaServerPlayItem]: def latest(self, count: int = 20, server: str = None) -> List[schemas.MediaServerPlayItem]:
""" """
获取媒体服务器最新入库条目 获取媒体服务器最新入库条目
""" """
return self.run_module("mediaserver_latest", server=server, count=count) return self.run_module("mediaserver_latest", count=count, server=server)
def get_play_url(self, server: str, item_id: Union[str, int]) -> Optional[str]: def get_play_url(self, server: str, item_id: Union[str, int]) -> Optional[str]:
""" """

View File

@ -103,11 +103,11 @@ class EmbyModule(_ModuleBase):
media_statistic.user_count = self.emby.get_user_count() media_statistic.user_count = self.emby.get_user_count()
return [media_statistic] return [media_statistic]
def mediaserver_librarys(self, server: str) -> Optional[List[schemas.MediaServerLibrary]]: def mediaserver_librarys(self, server: str = None) -> Optional[List[schemas.MediaServerLibrary]]:
""" """
媒体库列表 媒体库列表
""" """
if server != "emby": if server and server != "emby":
return None return None
return self.emby.get_librarys() return self.emby.get_librarys()
@ -142,11 +142,11 @@ class EmbyModule(_ModuleBase):
episodes=episodes episodes=episodes
) for season, episodes in seasoninfo.items()] ) for season, episodes in seasoninfo.items()]
def mediaserver_playing(self, server: str, count: int = 20) -> List[schemas.MediaServerPlayItem]: def mediaserver_playing(self, count: int = 20, server: str = None) -> List[schemas.MediaServerPlayItem]:
""" """
获取媒体服务器正在播放信息 获取媒体服务器正在播放信息
""" """
if server != "emby": if server and server != "emby":
return [] return []
return self.emby.get_resume(count) return self.emby.get_resume(count)
@ -158,10 +158,10 @@ class EmbyModule(_ModuleBase):
return None return None
return self.emby.get_play_url(item_id) return self.emby.get_play_url(item_id)
def mediaserver_latest(self, server: str, count: int = 20) -> List[schemas.MediaServerPlayItem]: def mediaserver_latest(self, count: int = 20, server: str = None) -> List[schemas.MediaServerPlayItem]:
""" """
获取媒体服务器最新入库条目 获取媒体服务器最新入库条目
""" """
if server != "emby": if server and server != "emby":
return [] return []
return self.emby.get_latest(count) return self.emby.get_latest(count)

View File

@ -91,7 +91,10 @@ class Emby(metaclass=Singleton):
if not self._host or not self._apikey: if not self._host or not self._apikey:
return [] return []
libraries = [] libraries = []
black_list = (settings.MEDIASERVER_SYNC_BLACKLIST or '').split(",")
for library in self.__get_emby_librarys() or []: for library in self.__get_emby_librarys() or []:
if library.get("Name") in black_list:
continue
match library.get("CollectionType"): match library.get("CollectionType"):
case "movies": case "movies":
library_type = MediaType.MOVIE.value library_type = MediaType.MOVIE.value

View File

@ -101,11 +101,11 @@ class JellyfinModule(_ModuleBase):
media_statistic.user_count = self.jellyfin.get_user_count() media_statistic.user_count = self.jellyfin.get_user_count()
return [media_statistic] return [media_statistic]
def mediaserver_librarys(self, server: str) -> Optional[List[schemas.MediaServerLibrary]]: def mediaserver_librarys(self, server: str = None) -> Optional[List[schemas.MediaServerLibrary]]:
""" """
媒体库列表 媒体库列表
""" """
if server != "jellyfin": if server and server != "jellyfin":
return None return None
return self.jellyfin.get_librarys() return self.jellyfin.get_librarys()
@ -140,11 +140,11 @@ class JellyfinModule(_ModuleBase):
episodes=episodes episodes=episodes
) for season, episodes in seasoninfo.items()] ) for season, episodes in seasoninfo.items()]
def mediaserver_playing(self, server: str, count: int = 20) -> List[schemas.MediaServerPlayItem]: def mediaserver_playing(self, count: int = 20, server: str = None) -> List[schemas.MediaServerPlayItem]:
""" """
获取媒体服务器正在播放信息 获取媒体服务器正在播放信息
""" """
if server != "jellyfin": if server and server != "jellyfin":
return [] return []
return self.jellyfin.get_resume(count) return self.jellyfin.get_resume(count)
@ -156,10 +156,10 @@ class JellyfinModule(_ModuleBase):
return None return None
return self.jellyfin.get_play_url(item_id) return self.jellyfin.get_play_url(item_id)
def mediaserver_latest(self, server: str, count: int = 20) -> List[schemas.MediaServerPlayItem]: def mediaserver_latest(self, count: int = 20, server: str = None) -> List[schemas.MediaServerPlayItem]:
""" """
获取媒体服务器最新入库条目 获取媒体服务器最新入库条目
""" """
if server != "jellyfin": if server and server != "jellyfin":
return [] return []
return self.jellyfin.get_latest(count) return self.jellyfin.get_latest(count)

View File

@ -70,7 +70,10 @@ class Jellyfin(metaclass=Singleton):
if not self._host or not self._apikey: if not self._host or not self._apikey:
return [] return []
libraries = [] libraries = []
black_list = (settings.MEDIASERVER_SYNC_BLACKLIST or '').split(",")
for library in self.__get_jellyfin_librarys() or []: for library in self.__get_jellyfin_librarys() or []:
if library.get("Name") in black_list:
continue
match library.get("CollectionType"): match library.get("CollectionType"):
case "movies": case "movies":
library_type = MediaType.MOVIE.value library_type = MediaType.MOVIE.value

View File

@ -95,11 +95,11 @@ class PlexModule(_ModuleBase):
media_statistic.user_count = 1 media_statistic.user_count = 1
return [media_statistic] return [media_statistic]
def mediaserver_librarys(self, server: str) -> Optional[List[schemas.MediaServerLibrary]]: def mediaserver_librarys(self, server: str = None) -> Optional[List[schemas.MediaServerLibrary]]:
""" """
媒体库列表 媒体库列表
""" """
if server != "plex": if server and server != "plex":
return None return None
return self.plex.get_librarys() return self.plex.get_librarys()
@ -134,19 +134,19 @@ class PlexModule(_ModuleBase):
episodes=episodes episodes=episodes
) for season, episodes in seasoninfo.items()] ) for season, episodes in seasoninfo.items()]
def mediaserver_playing(self, server: str, count: int = 20) -> List[schemas.MediaServerPlayItem]: def mediaserver_playing(self, count: int = 20, server: str = None) -> List[schemas.MediaServerPlayItem]:
""" """
获取媒体服务器正在播放信息 获取媒体服务器正在播放信息
""" """
if server != "plex": if server and server != "plex":
return [] return []
return self.plex.get_resume(count) return self.plex.get_resume(count)
def mediaserver_latest(self, server: str, count: int = 20) -> List[schemas.MediaServerPlayItem]: def mediaserver_latest(self, count: int = 20, server: str = None) -> List[schemas.MediaServerPlayItem]:
""" """
获取媒体服务器最新入库条目 获取媒体服务器最新入库条目
""" """
if server != "plex": if server and server != "plex":
return [] return []
return self.plex.get_latest(count) return self.plex.get_latest(count)

View File

@ -108,7 +108,10 @@ class Plex(metaclass=Singleton):
logger.error(f"获取媒体服务器所有媒体库列表出错:{str(err)}") logger.error(f"获取媒体服务器所有媒体库列表出错:{str(err)}")
return [] return []
libraries = [] libraries = []
black_list = (settings.MEDIASERVER_SYNC_BLACKLIST or '').split(",")
for library in self._libraries: for library in self._libraries:
if library.title in black_list:
continue
match library.type: match library.type:
case "movie": case "movie":
library_type = MediaType.MOVIE.value library_type = MediaType.MOVIE.value