Skip to content

Commit 43bf9ed

Browse files
authored
Merge pull request #90 from Makhuta/master
Fix
2 parents 5cdc66c + b046118 commit 43bf9ed

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

custom_components/plex_recently_added/parser.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,18 @@ def parse_library(root):
1919

2020
return output
2121

22+
def extract_metadata_and_type(path):
23+
pattern = re.compile(r"/library/metadata/(\d+)/(thumb|art)/(\d+)")
24+
match = pattern.search(path)
25+
26+
if match:
27+
metadata_id = match.group(1)
28+
art_type = match.group(2)
29+
art_id = match.group(3)
30+
return metadata_id, art_type, art_id
31+
32+
return None
33+
2234
def parse_data(data, max, base_url, token, identifier, section_key, images_base_url, is_all = False):
2335
if is_all:
2436
sorted_data = []
@@ -68,8 +80,10 @@ def parse_data(data, max, base_url, token, identifier, section_key, images_base_
6880
data_output["rating"] = ('\N{BLACK STAR} ' + str(item.get("rating"))) if int(float(item.get("rating", 0))) > 0 else ''
6981
data_output['summary'] = item.get('summary', '')
7082
data_output['trailer'] = item.get('trailer')
71-
data_output["poster"] = (f'{images_base_url}?path={thumb}') if thumb else ""
72-
data_output["fanart"] = (f'{images_base_url}?path={art}') if art else ""
83+
thumb_IDs = extract_metadata_and_type(thumb)
84+
data_output["poster"] = (f'{images_base_url}?metadata={thumb_IDs[0]}&thumb={thumb_IDs[2]}') if thumb_IDs else ""
85+
art_IDs = extract_metadata_and_type(art)
86+
data_output["fanart"] = (f'{images_base_url}?metadata={art_IDs[0]}&art={art_IDs[2]}') if art_IDs else ""
7387
data_output["deep_link"] = deep_link if identifier else None
7488

7589
output.append(data_output)

custom_components/plex_recently_added/redirect.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,10 @@ def __init__(self, config_entry: ConfigEntry):
2424
self.url = f'/{config_entry.data[CONF_NAME].lower() + "_" if len(config_entry.data[CONF_NAME]) > 0 else ""}plex_recently_added'
2525

2626
async def get(self, request):
27-
path = request.query.get("path", "")
28-
url = f'{self._base_url}{path}?X-Plex-Token={self._token}'
27+
metadataId = int(request.query.get("metadata", 0))
28+
thumbId = int(request.query.get("thumb", 0))
29+
artId = int(request.query.get("art", 0))
30+
url = f'{self._base_url}/library/metadata/{metadataId}/{"thumb" if thumbId != 0 else "art"}/{thumbId if thumbId != 0 else artId if artId != 0 else ""}?X-Plex-Token={self._token}'
2931

3032
async with ClientSession() as session:
3133
async with session.get(url) as res:

0 commit comments

Comments
 (0)