mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-05 23:47:41 +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])
|
@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.dboper = MediaServerOper()
|
||||||
self.mediaserverhelper = MediaServerHelper()
|
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]:
|
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} 的数据 ...")
|
logger.info(f"开始同步媒体库 {server_name} 的数据 ...")
|
||||||
for library in self.librarys(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
|
continue
|
||||||
logger.info(f"正在同步 {server_name} 媒体库 {library.name} ...")
|
logger.info(f"正在同步 {server_name} 媒体库 {library.name} ...")
|
||||||
library_count = 0
|
library_count = 0
|
||||||
|
|||||||
@@ -161,13 +161,14 @@ class EmbyModule(_ModuleBase, _MediaServerBase):
|
|||||||
return media_statistics
|
return media_statistics
|
||||||
|
|
||||||
def mediaserver_librarys(self, server: str,
|
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)
|
server: Emby = self.get_server(server)
|
||||||
if server:
|
if server:
|
||||||
return server.get_librarys(username)
|
return server.get_librarys(username=username, hidden=hidden)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def mediaserver_items(self, server: str, library_id: str) -> Optional[Generator]:
|
def mediaserver_items(self, server: str, library_id: str) -> Optional[Generator]:
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ class Emby:
|
|||||||
logger.error(f"连接User/Views 出错:" + str(e))
|
logger.error(f"连接User/Views 出错:" + str(e))
|
||||||
return []
|
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 []
|
return []
|
||||||
libraries = []
|
libraries = []
|
||||||
for library in self.__get_emby_librarys(username) or []:
|
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"):
|
match library.get("CollectionType"):
|
||||||
case "movies":
|
case "movies":
|
||||||
library_type = MediaType.MOVIE.value
|
library_type = MediaType.MOVIE.value
|
||||||
|
|||||||
@@ -159,13 +159,14 @@ class JellyfinModule(_ModuleBase, _MediaServerBase):
|
|||||||
return media_statistics
|
return media_statistics
|
||||||
|
|
||||||
def mediaserver_librarys(self, server: str = None,
|
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)
|
server: Jellyfin = self.get_server(server)
|
||||||
if server:
|
if server:
|
||||||
return server.get_librarys(username)
|
return server.get_librarys(username=username, hidden=hidden)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def mediaserver_items(self, server: str, library_id: str) -> Optional[Generator]:
|
def mediaserver_items(self, server: str, library_id: str) -> Optional[Generator]:
|
||||||
|
|||||||
@@ -124,7 +124,7 @@ class Jellyfin:
|
|||||||
logger.error(f"连接Users/Views 出错:" + str(e))
|
logger.error(f"连接Users/Views 出错:" + str(e))
|
||||||
return []
|
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 []
|
return []
|
||||||
libraries = []
|
libraries = []
|
||||||
for library in self.__get_jellyfin_librarys(username) or []:
|
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"):
|
match library.get("CollectionType"):
|
||||||
case "movies":
|
case "movies":
|
||||||
library_type = MediaType.MOVIE.value
|
library_type = MediaType.MOVIE.value
|
||||||
|
|||||||
@@ -147,13 +147,14 @@ class PlexModule(_ModuleBase, _MediaServerBase):
|
|||||||
media_statistics.append(media_statistic)
|
media_statistics.append(media_statistic)
|
||||||
return media_statistics
|
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)
|
server: Plex = self.get_server(server)
|
||||||
if server:
|
if server:
|
||||||
return server.get_librarys()
|
return server.get_librarys(hidden)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def mediaserver_items(self, server: str, library_id: str) -> Optional[Generator]:
|
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
|
return [f"{self._host.rstrip('/') + url}?X-Plex-Token={self._token}" for url in
|
||||||
list(poster_urls.keys())[:total_size]]
|
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 []
|
return []
|
||||||
libraries = []
|
libraries = []
|
||||||
for library in self._libraries:
|
for library in self._libraries:
|
||||||
|
if hidden and self._sync_libraries and library.key not in self._sync_libraries:
|
||||||
|
continue
|
||||||
match library.type:
|
match library.type:
|
||||||
case "movie":
|
case "movie":
|
||||||
library_type = MediaType.MOVIE.value
|
library_type = MediaType.MOVIE.value
|
||||||
|
|||||||
Reference in New Issue
Block a user