mirror of
https://github.com/home-assistant/core.git
synced 2025-04-23 16:57:53 +00:00
Clean up attributes of Overseerr event entity (#136251)
This commit is contained in:
parent
eb20a00aa2
commit
7a78f87fa6
@ -55,6 +55,8 @@ async def async_setup_entry(
|
||||
class OverseerrEvent(OverseerrEntity, EventEntity):
|
||||
"""Defines a Overseerr event entity."""
|
||||
|
||||
entity_description: OverseerrEventEntityDescription
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
coordinator: OverseerrCoordinator,
|
||||
@ -76,7 +78,11 @@ class OverseerrEvent(OverseerrEntity, EventEntity):
|
||||
"""Handle incoming event."""
|
||||
event_type = event["notification_type"].lower()
|
||||
if event_type.split("_")[0] == self.entity_description.key:
|
||||
self._trigger_event(event_type[6:], event)
|
||||
self._attr_entity_picture = event.get("image")
|
||||
self._trigger_event(
|
||||
event_type[6:],
|
||||
parse_event(event, self.entity_description.nullable_fields),
|
||||
)
|
||||
self.async_write_ha_state()
|
||||
|
||||
@callback
|
||||
@ -94,6 +100,17 @@ class OverseerrEvent(OverseerrEntity, EventEntity):
|
||||
def parse_event(event: dict[str, Any], nullable_fields: list[str]) -> dict[str, Any]:
|
||||
"""Parse event."""
|
||||
event.pop("notification_type")
|
||||
event.pop("image")
|
||||
for field in nullable_fields:
|
||||
event.pop(field)
|
||||
if (media := event.get("media")) is not None:
|
||||
for field in ("status", "status4k"):
|
||||
media[field] = media[field].lower()
|
||||
for field in ("tmdb_id", "tvdb_id"):
|
||||
if (value := media.get(field)) != "":
|
||||
media[field] = int(value)
|
||||
else:
|
||||
media[field] = None
|
||||
if (request := event.get("request")) is not None:
|
||||
request["request_id"] = int(request["request_id"])
|
||||
return event
|
||||
|
@ -44,7 +44,7 @@
|
||||
# name: test_entities[event.overseerr_last_media_event-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'comment': None,
|
||||
'entity_picture': 'https://image.tmdb.org/t/p/w600_and_h900_bestv2/something.jpg',
|
||||
'event_type': 'auto_approved',
|
||||
'event_types': list([
|
||||
'pending',
|
||||
@ -55,19 +55,16 @@
|
||||
'auto_approved',
|
||||
]),
|
||||
'friendly_name': 'Overseerr Last media event',
|
||||
'image': 'https://image.tmdb.org/t/p/w600_and_h900_bestv2/something.jpg',
|
||||
'issue': None,
|
||||
'media': dict({
|
||||
'media_type': 'movie',
|
||||
'status': 'PENDING',
|
||||
'status4k': 'UNKNOWN',
|
||||
'tmdb_id': '123',
|
||||
'tvdb_id': '',
|
||||
'status': 'pending',
|
||||
'status4k': 'unknown',
|
||||
'tmdb_id': 123,
|
||||
'tvdb_id': None,
|
||||
}),
|
||||
'message': 'Here is an interesting Linux ISO that was automatically approved.',
|
||||
'notification_type': 'MEDIA_AUTO_APPROVED',
|
||||
'request': dict({
|
||||
'request_id': '16',
|
||||
'request_id': 16,
|
||||
'requested_by_avatar': 'https://plex.tv/users/abc/avatar?c=123',
|
||||
'requested_by_email': 'my@email.com',
|
||||
'requested_by_settings_discord_id': '123',
|
||||
|
Loading…
x
Reference in New Issue
Block a user