mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-07-20 04:02:03 +08:00
feat(mediaserver): add item count retrieval for various media servers
This commit is contained in:
@@ -253,6 +253,19 @@ class PlexModule(_ModuleBase, _MediaServerBase[Plex]):
|
||||
return server_obj.get_items(library_id, start_index, limit)
|
||||
return None
|
||||
|
||||
def mediaserver_items_count(self, server: str, library_id: Union[str, int]) -> Optional[int]:
|
||||
"""
|
||||
获取指定媒体库可同步的媒体条目总数
|
||||
|
||||
:param server: 媒体服务器名称
|
||||
:param library_id: 媒体库ID
|
||||
:return: 媒体条目总数,查询失败时返回None
|
||||
"""
|
||||
server_obj: Plex = self.get_instance(server)
|
||||
if server_obj:
|
||||
return server_obj.get_items_count(library_id)
|
||||
return None
|
||||
|
||||
def mediaserver_iteminfo(self, server: str, item_id: str) -> Optional[schemas.MediaServerItem]:
|
||||
"""
|
||||
媒体库项目详情
|
||||
|
||||
@@ -575,6 +575,22 @@ class Plex:
|
||||
user_state=user_state,
|
||||
)
|
||||
|
||||
def get_items_count(self, parent: Union[str, int]) -> Optional[int]:
|
||||
"""
|
||||
获取指定媒体库可同步的媒体条目总数
|
||||
|
||||
:param parent: 媒体库ID
|
||||
:return: 媒体条目总数,查询失败时返回None
|
||||
"""
|
||||
if not parent or not self._plex:
|
||||
return None
|
||||
try:
|
||||
section = self._plex.library.sectionByID(int(parent))
|
||||
return int(section.totalSize) if section else None
|
||||
except Exception as err:
|
||||
logger.error(f"查询媒体库 {parent} 的媒体总数出错:{str(err)}")
|
||||
return None
|
||||
|
||||
def get_items(self, parent: Union[str, int], start_index: Optional[int] = 0, limit: Optional[int] = -1) \
|
||||
-> Generator[MediaServerItem | None, Any, None]:
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user