From 6d7a63ff6119179c659499bf675e17e92b246bc7 Mon Sep 17 00:00:00 2001 From: thsrite Date: Fri, 12 Jan 2024 10:07:39 +0800 Subject: [PATCH] fix c044e594 --- app/modules/emby/emby.py | 22 +++++------------- app/modules/jellyfin/jellyfin.py | 40 +++++++++++++++++++------------- 2 files changed, 30 insertions(+), 32 deletions(-) diff --git a/app/modules/emby/emby.py b/app/modules/emby/emby.py index e4c05ab1..afb31235 100644 --- a/app/modules/emby/emby.py +++ b/app/modules/emby/emby.py @@ -1076,19 +1076,9 @@ class Emby(metaclass=Singleton): if not self._host or not self._apikey: return [] library_folders = [] - req_url = f"{self._host}emby/Library/SelectableMediaFolders?api_key={self._apikey}" - try: - res = RequestUtils().get_res(req_url) - if res: - black_list = (settings.MEDIASERVER_SYNC_BLACKLIST or '').split(",") - for library in res.json() or []: - if library.get("Name") in black_list: - continue - library_folders += [folder.get("Path") for folder in library.get("SubFolders")] - return library_folders - else: - logger.error(f"Library/SelectableMediaFolders 未获取到返回数据") - return [] - except Exception as e: - logger.error(f"连接Library/SelectableMediaFolders 出错:" + str(e)) - return [] + black_list = (settings.MEDIASERVER_SYNC_BLACKLIST or '').split(",") + for library in self.get_emby_folders() or []: + if library.get("Name") in black_list: + continue + library_folders += [folder.get("Path") for folder in library.get("SubFolders")] + return library_folders diff --git a/app/modules/jellyfin/jellyfin.py b/app/modules/jellyfin/jellyfin.py index c1f8c660..0e31fec1 100644 --- a/app/modules/jellyfin/jellyfin.py +++ b/app/modules/jellyfin/jellyfin.py @@ -45,6 +45,24 @@ class Jellyfin(metaclass=Singleton): self.user = self.get_user() self.serverid = self.get_server_id() + def get_jellyfin_folders(self) -> List[dict]: + """ + 获取Jellyfin媒体库路径列表 + """ + if not self._host or not self._apikey: + return [] + req_url = "%Library/SelectableMediaFolders?api_key=%s" % (self._host, self._apikey) + try: + res = RequestUtils().get_res(req_url) + if res: + return res.json() + else: + logger.error(f"Library/SelectableMediaFolders 未获取到返回数据") + return [] + except Exception as e: + logger.error(f"连接Library/SelectableMediaFolders 出错:" + str(e)) + return [] + def __get_jellyfin_librarys(self, username: str = None) -> List[dict]: """ 获取Jellyfin媒体库的信息 @@ -753,19 +771,9 @@ class Jellyfin(metaclass=Singleton): if not self._host or not self._apikey: return [] library_folders = [] - req_url = f"{self._host}Library/SelectableMediaFolders?api_key={self._apikey}" - try: - res = RequestUtils().get_res(req_url) - if res: - black_list = (settings.MEDIASERVER_SYNC_BLACKLIST or '').split(",") - for library in res.json() or []: - if library.get("Name") in black_list: - continue - library_folders += [folder.get("Path") for folder in library.get("SubFolders")] - return library_folders - else: - logger.error(f"Library/SelectableMediaFolders 未获取到返回数据") - return [] - except Exception as e: - logger.error(f"连接Library/SelectableMediaFolders 出错:" + str(e)) - return [] + black_list = (settings.MEDIASERVER_SYNC_BLACKLIST or '').split(",") + for library in self.get_jellyfin_folders() or []: + if library.get("Name") in black_list: + continue + library_folders += [folder.get("Path") for folder in library.get("SubFolders")] + return library_folders