mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-04-14 10:10:20 +08:00
fix api
This commit is contained in:
@@ -137,8 +137,9 @@ def playing(server: str, count: int = 12,
|
||||
|
||||
|
||||
@router.get("/library", summary="媒体库列表", response_model=List[schemas.MediaServerLibrary])
|
||||
def library(server: str, userinfo: schemas.TokenPayload = Depends(verify_token)) -> Any:
|
||||
def library(server: str, hidden: bool = False,
|
||||
userinfo: schemas.TokenPayload = Depends(verify_token)) -> Any:
|
||||
"""
|
||||
获取媒体服务器媒体库列表
|
||||
"""
|
||||
return MediaServerChain().librarys(server=server, username=userinfo.username) or []
|
||||
return MediaServerChain().librarys(server=server, username=userinfo.username, hidden=hidden) or []
|
||||
|
||||
@@ -21,11 +21,11 @@ class MediaServerChain(ChainBase):
|
||||
self.dboper = MediaServerOper()
|
||||
self.mediaserverhelper = MediaServerHelper()
|
||||
|
||||
def librarys(self, server: str, username: str = None) -> List[schemas.MediaServerLibrary]:
|
||||
def librarys(self, server: str, username: str = None, hidden: bool = False) -> List[schemas.MediaServerLibrary]:
|
||||
"""
|
||||
获取媒体服务器所有媒体库
|
||||
"""
|
||||
return self.run_module("mediaserver_librarys", server=server, username=username)
|
||||
return self.run_module("mediaserver_librarys", server=server, username=username, hidden=hidden)
|
||||
|
||||
def items(self, server: str, library_id: Union[str, int]) -> List[schemas.MediaServerItem]:
|
||||
"""
|
||||
@@ -85,7 +85,8 @@ class MediaServerChain(ChainBase):
|
||||
logger.info(f"开始同步媒体库 {server_name} 的数据 ...")
|
||||
for library in self.librarys(server_name):
|
||||
# 同步黑名单 跳过
|
||||
if library.id not in sync_libraries:
|
||||
if sync_libraries and library.id not in sync_libraries:
|
||||
logger.info(f"{server_name} 未在同步媒体库列表中,跳过")
|
||||
continue
|
||||
logger.info(f"正在同步 {server_name} 媒体库 {library.name} ...")
|
||||
library_count = 0
|
||||
|
||||
@@ -161,13 +161,14 @@ class EmbyModule(_ModuleBase, _MediaServerBase):
|
||||
return media_statistics
|
||||
|
||||
def mediaserver_librarys(self, server: str,
|
||||
username: str = None) -> Optional[List[schemas.MediaServerLibrary]]:
|
||||
username: str = None,
|
||||
hidden: bool = False) -> Optional[List[schemas.MediaServerLibrary]]:
|
||||
"""
|
||||
媒体库列表
|
||||
"""
|
||||
server: Emby = self.get_server(server)
|
||||
if server:
|
||||
return server.get_librarys(username)
|
||||
return server.get_librarys(username=username, hidden=hidden)
|
||||
return None
|
||||
|
||||
def mediaserver_items(self, server: str, library_id: str) -> Optional[Generator]:
|
||||
|
||||
@@ -128,7 +128,7 @@ class Emby:
|
||||
logger.error(f"连接User/Views 出错:" + str(e))
|
||||
return []
|
||||
|
||||
def get_librarys(self, username: str = None) -> List[schemas.MediaServerLibrary]:
|
||||
def get_librarys(self, username: str = None, hidden: bool = False) -> List[schemas.MediaServerLibrary]:
|
||||
"""
|
||||
获取媒体服务器所有媒体库列表
|
||||
"""
|
||||
@@ -136,6 +136,8 @@ class Emby:
|
||||
return []
|
||||
libraries = []
|
||||
for library in self.__get_emby_librarys(username) or []:
|
||||
if hidden and self._sync_libraries and library.get("Id") not in self._sync_libraries:
|
||||
continue
|
||||
match library.get("CollectionType"):
|
||||
case "movies":
|
||||
library_type = MediaType.MOVIE.value
|
||||
|
||||
@@ -159,13 +159,14 @@ class JellyfinModule(_ModuleBase, _MediaServerBase):
|
||||
return media_statistics
|
||||
|
||||
def mediaserver_librarys(self, server: str = None,
|
||||
username: str = None) -> Optional[List[schemas.MediaServerLibrary]]:
|
||||
username: str = None,
|
||||
hidden: bool = False) -> Optional[List[schemas.MediaServerLibrary]]:
|
||||
"""
|
||||
媒体库列表
|
||||
"""
|
||||
server: Jellyfin = self.get_server(server)
|
||||
if server:
|
||||
return server.get_librarys(username)
|
||||
return server.get_librarys(username=username, hidden=hidden)
|
||||
return None
|
||||
|
||||
def mediaserver_items(self, server: str, library_id: str) -> Optional[Generator]:
|
||||
|
||||
@@ -124,7 +124,7 @@ class Jellyfin:
|
||||
logger.error(f"连接Users/Views 出错:" + str(e))
|
||||
return []
|
||||
|
||||
def get_librarys(self, username: str = None) -> List[schemas.MediaServerLibrary]:
|
||||
def get_librarys(self, username: str = None, hidden: bool = False) -> List[schemas.MediaServerLibrary]:
|
||||
"""
|
||||
获取媒体服务器所有媒体库列表
|
||||
"""
|
||||
@@ -132,6 +132,8 @@ class Jellyfin:
|
||||
return []
|
||||
libraries = []
|
||||
for library in self.__get_jellyfin_librarys(username) or []:
|
||||
if hidden and self._sync_libraries and library.get("Id") not in self._sync_libraries:
|
||||
continue
|
||||
match library.get("CollectionType"):
|
||||
case "movies":
|
||||
library_type = MediaType.MOVIE.value
|
||||
|
||||
@@ -147,13 +147,14 @@ class PlexModule(_ModuleBase, _MediaServerBase):
|
||||
media_statistics.append(media_statistic)
|
||||
return media_statistics
|
||||
|
||||
def mediaserver_librarys(self, server: str = None, **kwargs) -> Optional[List[schemas.MediaServerLibrary]]:
|
||||
def mediaserver_librarys(self, server: str = None, hidden: bool = False,
|
||||
**kwargs) -> Optional[List[schemas.MediaServerLibrary]]:
|
||||
"""
|
||||
媒体库列表
|
||||
"""
|
||||
server: Plex = self.get_server(server)
|
||||
if server:
|
||||
return server.get_librarys()
|
||||
return server.get_librarys(hidden)
|
||||
return None
|
||||
|
||||
def mediaserver_items(self, server: str, library_id: str) -> Optional[Generator]:
|
||||
|
||||
@@ -100,7 +100,7 @@ class Plex:
|
||||
return [f"{self._host.rstrip('/') + url}?X-Plex-Token={self._token}" for url in
|
||||
list(poster_urls.keys())[:total_size]]
|
||||
|
||||
def get_librarys(self) -> List[schemas.MediaServerLibrary]:
|
||||
def get_librarys(self, hidden: bool = False) -> List[schemas.MediaServerLibrary]:
|
||||
"""
|
||||
获取媒体服务器所有媒体库列表
|
||||
"""
|
||||
@@ -113,6 +113,8 @@ class Plex:
|
||||
return []
|
||||
libraries = []
|
||||
for library in self._libraries:
|
||||
if hidden and self._sync_libraries and library.key not in self._sync_libraries:
|
||||
continue
|
||||
match library.type:
|
||||
case "movie":
|
||||
library_type = MediaType.MOVIE.value
|
||||
|
||||
Reference in New Issue
Block a user