Merge pull request #3171 from Sowevo/v2

This commit is contained in:
jxxghp
2024-11-20 07:07:08 +08:00
committed by GitHub
+10 -6
View File
@@ -310,12 +310,16 @@ class Plex:
return None return None
try: try:
image_url = None image_url = None
ekey = f"/library/metadata/{item_id}" ekey = item_id
item = self._plex.fetchItem(ekey=ekey) item = self._plex.fetchItem(ekey=ekey)
if not item: if not item:
return None return None
# 如果配置了外网播放地址以及Token,则默认从Plex媒体服务器获取图片,否则返回有外网地址的图片资源 # 如果配置了外网播放地址以及Token,则默认从Plex媒体服务器获取图片,否则返回有外网地址的图片资源
if self._playhost and self._token and plex_url: # Plex外网播放地址这个框里目前可以填两种地址
# 1. Plex的官方转发地址https://app.plex.tv, 2. 自己处理的端口转发地址
# 如果使用的是1的官方转发地址,那么就不能走这个逻辑,因为官方转发地址无法获取到图片
if (self._playhost and "app.plex.tv" not in self._playhost
and self._token and plex_url):
query = {"X-Plex-Token": self._token} query = {"X-Plex-Token": self._token}
if image_type == "Poster": if image_type == "Poster":
if item.thumb: if item.thumb:
@@ -346,8 +350,8 @@ class Plex:
image_url = image.key image_url = image.key
break break
# 如果最后还是找不到,则递归父级进行查找 # 如果最后还是找不到,则递归父级进行查找
if not image_url and hasattr(item, "parentRatingKey"): if not image_url and hasattr(item, "parentKey"):
return self.get_remote_image_by_id(item_id=item.parentRatingKey, return self.get_remote_image_by_id(item_id=item.parentKey,
image_type=image_type, image_type=image_type,
depth=depth + 1) depth=depth + 1)
return image_url return image_url
@@ -665,7 +669,7 @@ class Plex:
"S" + str(message.get('Metadata', {}).get('parentIndex')), "S" + str(message.get('Metadata', {}).get('parentIndex')),
"E" + str(message.get('Metadata', {}).get('index')), "E" + str(message.get('Metadata', {}).get('index')),
message.get('Metadata', {}).get('title')) message.get('Metadata', {}).get('title'))
eventItem.item_id = message.get('Metadata', {}).get('ratingKey') eventItem.item_id = message.get('Metadata', {}).get('key')
eventItem.season_id = message.get('Metadata', {}).get('parentIndex') eventItem.season_id = message.get('Metadata', {}).get('parentIndex')
eventItem.episode_id = message.get('Metadata', {}).get('index') eventItem.episode_id = message.get('Metadata', {}).get('index')
@@ -680,7 +684,7 @@ class Plex:
eventItem.item_name = "%s %s" % ( eventItem.item_name = "%s %s" % (
message.get('Metadata', {}).get('title'), message.get('Metadata', {}).get('title'),
"(" + str(message.get('Metadata', {}).get('year')) + ")") "(" + str(message.get('Metadata', {}).get('year')) + ")")
eventItem.item_id = message.get('Metadata', {}).get('ratingKey') eventItem.item_id = message.get('Metadata', {}).get('key')
if len(message.get('Metadata', {}).get('summary')) > 100: if len(message.get('Metadata', {}).get('summary')) > 100:
eventItem.overview = str(message.get('Metadata', {}).get('summary'))[:100] + "..." eventItem.overview = str(message.get('Metadata', {}).get('summary'))[:100] + "..."
else: else: