Skip to content

Commit b4c9e4c

Browse files
authored
Fix change detection comparison, prevent some keyerrors
1 parent 3cd90b6 commit b4c9e4c

File tree

1 file changed

+17
-17
lines changed

1 file changed

+17
-17
lines changed

custom_components/sensor/plex_recently_added.py

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
from homeassistant.const import CONF_HOST, CONF_PORT, CONF_SSL
1919
from homeassistant.helpers.entity import Entity
2020

21-
__version__ = '0.1.4'
21+
__version__ = '0.1.5'
2222

2323
_LOGGER = logging.getLogger(__name__)
2424

@@ -111,7 +111,7 @@ def device_state_attributes(self):
111111
else:
112112
continue
113113
if 'originallyAvailableAt' in media:
114-
card_item['aired'] = media['originallyAvailableAt']
114+
card_item['aired'] = media.get('originallyAvailableAt', '')
115115
else:
116116
card_item['aired'] = ''
117117
if days_since(media['addedAt'], self._tz) <= 7:
@@ -123,20 +123,20 @@ def device_state_attributes(self):
123123
else:
124124
card_item['flag'] = True
125125
if media['type'] == 'movie':
126-
card_item['title'] = media['title']
126+
card_item['title'] = media.get('title', '')
127127
card_item['episode'] = ''
128128
elif media['type'] == 'episode':
129-
card_item['title'] = media['grandparentTitle']
130-
card_item['episode'] = media['title']
129+
card_item['title'] = media.get('grandparentTitle', '')
130+
card_item['episode'] = media.get('title', '')
131131
card_item['number'] = ('S{:02d}E{:02d}').format(
132-
media['parentIndex'], media['index'])
132+
media.get('parentIndex', ''), media.get('index', ''))
133133
else:
134134
continue
135135
if media.get('duration', 0) > 0:
136136
card_item['runtime'] = math.floor(
137137
media['duration'] / 60000)
138138
if 'studio' in media:
139-
card_item['studio'] = media['studio']
139+
card_item['studio'] = media.get('studio', '')
140140
if 'Genre' in media:
141141
card_item['genres'] = ', '.join(
142142
[genre['tag'] for genre in media['Genre']][:3])
@@ -146,11 +146,11 @@ def device_state_attributes(self):
146146
else:
147147
card_item['rating'] = ''
148148
if media['type'] == 'movie':
149-
poster = media['thumb']
150-
fanart = media['art']
149+
poster = media.get('thumb', '')
150+
fanart = media.get('art', '')
151151
elif media['type'] == 'episode':
152-
poster = media['grandparentThumb']
153-
fanart = media['grandparentArt']
152+
poster = media.get('grandparentThumb', '')
153+
fanart = media.get('grandparentArt', '')
154154
else:
155155
continue
156156
if self.dl_images:
@@ -224,7 +224,7 @@ def update(self):
224224

225225
"""Update if media items have changed or images are missing"""
226226
if (dir_ids != self.media_ids or
227-
media_ids(self.data, True) != self.media_ids):
227+
media_ids(self.api_json, True) != self.media_ids):
228228
self.change_detected = True # Tell attributes to update
229229
self.data = self.api_json
230230
self.media_ids = media_ids(self.data, True)
@@ -237,11 +237,11 @@ def update(self):
237237
if 'type' not in media:
238238
continue
239239
elif media['type'] == 'movie':
240-
poster = media['thumb']
241-
fanart = media['art']
240+
poster = media.get('thumb', '')
241+
fanart = media.get('art', '')
242242
elif media['type'] == 'episode':
243-
poster = media['grandparentThumb']
244-
fanart = media['grandparentArt']
243+
poster = media.get('grandparentThumb', '')
244+
fanart = media.get('grandparentArt', '')
245245
poster_jpg = '{}p{}.jpg'.format(directory,
246246
media['ratingKey'])
247247
fanart_jpg = '{}f{}.jpg'.format(directory,
@@ -264,7 +264,7 @@ def update(self):
264264
continue
265265
else:
266266
"""Update if media items have changed"""
267-
if media_ids(self.data, True) != self.media_ids:
267+
if media_ids(self.api_json, True) != self.media_ids:
268268
self.change_detected = True # Tell attributes to update
269269
self.data = self.api_json
270270
self.media_ids = media_ids(self.data, False)

0 commit comments

Comments
 (0)