Skip to content

Commit 6372b89

Browse files
committed
Change
- attribute parameters according to the old version - the merged sensor have the joined items of all other (separated sensors)
1 parent 3b5795a commit 6372b89

File tree

2 files changed

+21
-9
lines changed

2 files changed

+21
-9
lines changed

custom_components/plex_recently_added/parser.py

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

2020
return output
2121

22-
def parse_data(data, max, base_url, token, identifier, section_key, images_base_url):
23-
data = sorted(data, key=lambda i: i['addedAt'], reverse=True)[:max]
22+
def parse_data(data, max, base_url, token, identifier, section_key, images_base_url, is_all = False):
23+
if is_all:
24+
sorted_data = []
25+
for k in data.keys():
26+
type_sorted = sorted(data[k], key=lambda i: i['addedAt'], reverse=True)[:max]
27+
sorted_data += type_sorted
28+
sorted_data = sorted(sorted_data, key=lambda i: i['addedAt'], reverse=True)
29+
else:
30+
sorted_data = sorted(data, key=lambda i: i['addedAt'], reverse=True)[:max]
2431

2532
output = []
26-
for item in data:
33+
for item in sorted_data:
2734
date = datetime.strptime(item.get("originallyAvailableAt", "1900-01-01"), "%Y-%m-%d").strftime('%Y-%m-%dT%H:%M:%SZ')
2835
thumb = item.get("thumb", item.get("parentThumb", item.get("grandparentThumb", None)))
2936
art = item.get("art", item.get("grandparentArt", None))
@@ -32,19 +39,22 @@ def parse_data(data, max, base_url, token, identifier, section_key, images_base_
3239
deep_link_position = -2
3340
deep_link = f'{base_url}/web/index.html#!/server/{identifier}/details?key=%2Flibrary%2Fmetadata%2F{item.get("key", "").split("/")[deep_link_position]}'
3441

42+
if not item.get("addedAt", None):
43+
continue
44+
3545
output.append(
3646
{
37-
"airdate": date,
47+
"airdate": datetime.utcfromtimestamp(int(item.get("addedAt", 0))).strftime('%Y-%m-%dT%H:%M:%SZ'),
3848
"title": item.get("grandparentTitle", item.get("parentTitle", item.get("title", ""))),
39-
"release": datetime.utcfromtimestamp(int(item.get("addedAt", 0))).strftime('%Y-%m-%dT%H:%M:%SZ'),
49+
"release": '$day, $date $time',
4050
"episode": item.get("title", ""),
4151
"number": f'S{"{:0>2}".format(item.get("parentIndex", "1"))}E{"{:0>2}".format(item.get("index", "1"))}' if item.get("parentIndex", None) and item.get("index", None) else "",
4252
"season_num": item.get("parentIndex", ""),
4353
"season_num": item.get("parentIndex", "1"),
4454
"episode_num": item.get("index", "1"),
4555
"genres": ", ".join([genre['tag'] for genre in item.get('Genre', [])][:3]),
4656
"rating": ('\N{BLACK STAR} ' + str(item.get("rating"))) if int(float(item.get("rating", 0))) > 0 else '',
47-
"studio": item.get("grandparentTitle", ""),
57+
"studio": item.get("studio", ""),
4858
"aired": date,
4959
"runtime": math.floor(int(item.get("duration", 0)) / 60000),
5060
"poster": (f'{images_base_url}?path={thumb}') if thumb else "",

custom_components/plex_recently_added/plex_api.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ async def update(self):
102102

103103
""" Looping through all libraries (sections) """
104104
data = {
105-
'all': []
105+
'all': {}
106106
}
107107
for s in self._section_types:
108108
data[s] = []
@@ -124,12 +124,14 @@ async def update(self):
124124
check_headers(sub_sec)
125125
root = ElementTree.fromstring(sub_sec.text)
126126
parsed_libs = parse_library(root)
127-
data['all'] += parsed_libs
127+
if library["type"] not in data['all']:
128+
data['all'][library["type"]] = []
129+
data['all'][library["type"]] += parsed_libs
128130
data[library["type"]] += parsed_libs
129131

130132
data_out = {}
131133
for k in data.keys():
132-
data_out[k] = {'data': [DEFAULT_PARSE_DICT] + parse_data(data[k], self._max, info_url, self._token, identifier, k, self._images_base_url)}
134+
data_out[k] = {'data': [DEFAULT_PARSE_DICT] + parse_data(data[k], self._max, info_url, self._token, identifier, k, self._images_base_url, k == "all")}
133135

134136
return {
135137
"data": {**data_out},

0 commit comments

Comments
 (0)