mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-05-13 07:26:45 +00:00
feat: rename methods for clarity in ZSpace media server integration
This commit is contained in:
@@ -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")]
|
||||||
|
|||||||
@@ -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后再查询集信息。"""
|
||||||
|
|||||||
Reference in New Issue
Block a user