feat: rename methods for clarity in ZSpace media server integration

This commit is contained in:
jxxghp
2026-05-11 18:35:20 +08:00
parent ed9116d81e
commit a2fa8d6f28
2 changed files with 19 additions and 19 deletions

View File

@@ -77,11 +77,11 @@ class ZSpace:
self.folders = [] self.folders = []
self.serverid = None self.serverid = None
return False return False
self.folders = self.get_emby_folders() self.folders = self.get_library_folders()
self.serverid = self.get_server_id() self.serverid = self.get_server_id()
return True return True
def get_emby_folders(self) -> List[dict]: def get_library_folders(self) -> List[dict]:
""" """
获取极影视媒体库路径列表 获取极影视媒体库路径列表
""" """
@@ -102,7 +102,7 @@ class ZSpace:
logger.error(f"连接Library/SelectableMediaFolders 出错:{e}") logger.error(f"连接Library/SelectableMediaFolders 出错:{e}")
return [] return []
def get_emby_virtual_folders(self) -> List[dict]: def get_virtual_folders(self) -> List[dict]:
""" """
获取极影视媒体库所有路径列表(包含共享路径) 获取极影视媒体库所有路径列表(包含共享路径)
""" """
@@ -116,7 +116,7 @@ class ZSpace:
res = RequestUtils().get_res(url, params) res = RequestUtils().get_res(url, params)
if res: if res:
library_items = res.json().get("Items") library_items = res.json().get("Items")
librarys = [] libraries = []
for library_item in library_items or []: for library_item in library_items or []:
library_id = library_item.get('ItemId') library_id = library_item.get('ItemId')
library_name = library_item.get('Name') library_name = library_item.get('Name')
@@ -129,12 +129,12 @@ class ZSpace:
library_paths.append(path.get('Path')) library_paths.append(path.get('Path'))
if library_name and library_paths: if library_name and library_paths:
librarys.append({ libraries.append({
'Id': library_id, 'Id': library_id,
'Name': library_name, 'Name': library_name,
'Path': library_paths 'Path': library_paths
}) })
return librarys return libraries
else: else:
logger.error("Library/VirtualFolders/Query 未获取到返回数据") logger.error("Library/VirtualFolders/Query 未获取到返回数据")
return [] return []
@@ -142,7 +142,7 @@ class ZSpace:
logger.error(f"连接Library/VirtualFolders/Query 出错:{e}") logger.error(f"连接Library/VirtualFolders/Query 出错:{e}")
return [] return []
def __get_emby_librarys(self, username: Optional[str] = None) -> List[dict]: def __get_library_views(self, username: Optional[str] = None) -> List[dict]:
""" """
获取极影视媒体库列表 获取极影视媒体库列表
""" """
@@ -175,7 +175,7 @@ class ZSpace:
if not self._host or not self._apikey: if not self._host or not self._apikey:
return [] return []
libraries = [] libraries = []
for library in self.__get_emby_librarys(username) or []: for library in self.__get_library_views(username) or []:
if hidden and self._sync_libraries and "all" not in self._sync_libraries \ if hidden and self._sync_libraries and "all" not in self._sync_libraries \
and library.get("Id") not in self._sync_libraries: and library.get("Id") not in self._sync_libraries:
continue continue
@@ -315,7 +315,7 @@ class ZSpace:
logger.error(f"连接Items/Counts出错{e}") logger.error(f"连接Items/Counts出错{e}")
return schemas.Statistic() return schemas.Statistic()
def __get_emby_series_id_by_name(self, name: str, year: str) -> Optional[str]: def __get_series_id_by_name(self, name: str, year: str) -> Optional[str]:
""" """
根据名称查询极影视中剧集的 SeriesId 根据名称查询极影视中剧集的 SeriesId
:param name: 标题 :param name: 标题
@@ -414,7 +414,7 @@ class ZSpace:
return None, None return None, None
cached_item_id = item_id cached_item_id = item_id
if not item_id: if not item_id:
item_id = self.__get_emby_series_id_by_name(title, year) item_id = self.__get_series_id_by_name(title, year)
if item_id is None: if item_id is None:
return None, None return None, None
if not item_id: if not item_id:
@@ -422,7 +422,7 @@ class ZSpace:
item_info = self.get_iteminfo(item_id) item_info = self.get_iteminfo(item_id)
if not item_info and cached_item_id and title: if not item_info and cached_item_id and title:
logger.warning(f"极影视缓存的电视剧媒体ID {cached_item_id} 已失效,尝试按标题重新搜索:{title}") logger.warning(f"极影视缓存的电视剧媒体ID {cached_item_id} 已失效,尝试按标题重新搜索:{title}")
item_id = self.__get_emby_series_id_by_name(title, year) item_id = self.__get_series_id_by_name(title, year)
if item_id is None: if item_id is None:
return None, None return None, None
if not item_id: if not item_id:
@@ -516,7 +516,7 @@ class ZSpace:
logger.error(f"连接Items/Id/Images出错{e}") logger.error(f"连接Items/Id/Images出错{e}")
return None return None
def __refresh_emby_library_by_id(self, item_id: str) -> bool: def __refresh_library_by_id(self, item_id: str) -> bool:
""" """
通知极影视刷新一个项目的媒体库 通知极影视刷新一个项目的媒体库
""" """
@@ -569,18 +569,18 @@ class ZSpace:
logger.info("开始刷新极影视媒体库...") logger.info("开始刷新极影视媒体库...")
library_ids = [] library_ids = []
for item in items: for item in items:
library_id = self.__get_emby_library_id_by_item(item) library_id = self.__get_library_id_by_item(item)
if library_id and library_id not in library_ids: if library_id and library_id not in library_ids:
library_ids.append(library_id) library_ids.append(library_id)
if "/" in library_ids: if "/" in library_ids:
return self.refresh_root_library() return self.refresh_root_library()
for library_id in library_ids: for library_id in library_ids:
if library_id != "/": if library_id != "/":
return self.__refresh_emby_library_by_id(library_id) return self.__refresh_library_by_id(library_id)
logger.info("极影视媒体库刷新完成") logger.info("极影视媒体库刷新完成")
return True return True
def __get_emby_library_id_by_item(self, item: schemas.RefreshMediaItem) -> Optional[str]: def __get_library_id_by_item(self, item: schemas.RefreshMediaItem) -> Optional[str]:
""" """
根据媒体信息查询在哪个媒体库返回要刷新的位置的ID 根据媒体信息查询在哪个媒体库返回要刷新的位置的ID
:param item: {title, year, type, category, target_path} :param item: {title, year, type, category, target_path}
@@ -588,7 +588,7 @@ class ZSpace:
if not item.title or not item.year or not item.type: if not item.title or not item.year or not item.type:
return None return None
if item.type != MediaType.MOVIE.value: if item.type != MediaType.MOVIE.value:
item_id = self.__get_emby_series_id_by_name(item.title, item.year) item_id = self.__get_series_id_by_name(item.title, item.year)
if item_id: if item_id:
return item_id return item_id
else: else:
@@ -1009,7 +1009,7 @@ class ZSpace:
if not self._host or not self._apikey: if not self._host or not self._apikey:
return [] return []
library_folders = [] library_folders = []
for library in self.get_emby_virtual_folders() or []: for library in self.get_virtual_folders() or []:
if self._sync_libraries and library.get("Id") not in self._sync_libraries: if self._sync_libraries and library.get("Id") not in self._sync_libraries:
continue continue
library_folders += [folder for folder in library.get("Path")] library_folders += [folder for folder in library.get("Path")]

View File

@@ -160,7 +160,7 @@ class MediaServerTvStaleItemIdTest(unittest.TestCase):
client._apikey = "api-key" client._apikey = "api-key"
client.user = "user-id" client.user = "user-id"
client.get_iteminfo = Mock(side_effect=[None, SimpleNamespace(tmdbid=12345)]) client.get_iteminfo = Mock(side_effect=[None, SimpleNamespace(tmdbid=12345)])
client._ZSpace__get_emby_series_id_by_name = Mock(return_value="new-series-id") client._ZSpace__get_series_id_by_name = Mock(return_value="new-series-id")
with patch("app.modules.zspace.zspace.RequestUtils") as request_utils_cls: with patch("app.modules.zspace.zspace.RequestUtils") as request_utils_cls:
request_utils_cls.return_value.get_res.return_value = _FakeResponse({ request_utils_cls.return_value.get_res.return_value = _FakeResponse({
@@ -176,7 +176,7 @@ class MediaServerTvStaleItemIdTest(unittest.TestCase):
self.assertEqual(item_id, "new-series-id") self.assertEqual(item_id, "new-series-id")
self.assertEqual(episodes, {1: [1]}) self.assertEqual(episodes, {1: [1]})
client._ZSpace__get_emby_series_id_by_name.assert_called_once_with("测试剧集", "2026") client._ZSpace__get_series_id_by_name.assert_called_once_with("测试剧集", "2026")
def test_ugreen_tv_episodes_fallback_when_cached_item_id_missing(self): def test_ugreen_tv_episodes_fallback_when_cached_item_id_missing(self):
"""绿联缓存ID失效时应重新搜索剧集ID后再查询集信息。""" """绿联缓存ID失效时应重新搜索剧集ID后再查询集信息。"""