From dd063bb16bc052ee6512565388db3e53588df01d Mon Sep 17 00:00:00 2001 From: jeblove <249972068@qq.com> Date: Mon, 11 Mar 2024 01:57:57 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E6=92=AD=E6=94=BE=E5=89=A7=E9=9B=86?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=B6=88=E6=81=AF=E6=8E=A8=E9=80=81=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/modules/jellyfin/jellyfin.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/app/modules/jellyfin/jellyfin.py b/app/modules/jellyfin/jellyfin.py index 47cc711a..54e61381 100644 --- a/app/modules/jellyfin/jellyfin.py +++ b/app/modules/jellyfin/jellyfin.py @@ -446,6 +446,10 @@ class Jellyfin: if not self._playhost: logger.error("Jellyfin外网播放地址未能获取或为空") return None + # 检测是否为TV + parent_id = self.get_itemId_ancestors(item_id, 0, "ParentBackdropItemId") + if parent_id: + item_id = parent_id req_url = "%sItems/%s/Images/%s" % (self._playhost, item_id, image_type) try: @@ -460,6 +464,25 @@ class Jellyfin: logger.error(f"连接Items/Id/Images出错:" + str(e)) return None + def get_itemId_ancestors(self, item_id, index, key): + """ + 获得itemId的父item + :param item_id: 在Jellyfin中剧集的ID (S01E02的E02的item_id) + :param index: 第几个json对象 + :param key: 需要得到父item中的键值对 + """ + req_url = "%sItems/%s/Ancestors?api_key=%s" % (self._host, item_id, self._apikey) + try: + res = RequestUtils().get_res(req_url) + if res: + return res.json()[index].get(key) + else: + logger.error(f"Items/Id/Ancestors 未获取到返回数据") + return False + except Exception as e: + logger.error(f"连接Items/Id/Ancestors出错:" + str(e)) + return False + def refresh_root_library(self) -> bool: """ 通知Jellyfin刷新整个媒体库