From dea9663adf038b50d20495e23c1580b0d41f41c6 Mon Sep 17 00:00:00 2001 From: Jonathan Wong Date: Sat, 7 Nov 2015 16:16:00 -0800 Subject: [PATCH] Add more metadata options to notifications --- data/interfaces/default/settings.html | 20 ++++++++++++++++++++ plexpy/notification_handler.py | 5 +++++ plexpy/pmsconnect.py | 24 +++++++++++++----------- 3 files changed, 38 insertions(+), 11 deletions(-) diff --git a/data/interfaces/default/settings.html b/data/interfaces/default/settings.html index 742926d9..ba7f08dd 100644 --- a/data/interfaces/default/settings.html +++ b/data/interfaces/default/settings.html @@ -938,10 +938,30 @@ available_notification_agents = sorted(notifiers.available_notification_agents() {content_rating} The content rating for the media item. (e.g. TV-MA, TV-PG, etc.) + + {directors} + A list of directors for the media item. + + + {writers} + A list of writers for the media item. + + + {actors} + A list of actors for the media item. + + + {genres} + A list of genres for the media item. + {summary} A short plot summary for the media item. + + {tagline} + A tagline for the media item. + {rating} The rating (out of 10) for the item. diff --git a/plexpy/notification_handler.py b/plexpy/notification_handler.py index b81ffcd4..af7d6a80 100644 --- a/plexpy/notification_handler.py +++ b/plexpy/notification_handler.py @@ -404,7 +404,12 @@ def build_notify_text(session=None, timeline=None, state=None): 'year': metadata['year'], 'studio': metadata['studio'], 'content_rating': metadata['content_rating'], + 'directors': ', '.join(metadata['directors']), + 'writers': ', '.join(metadata['writers']), + 'actors': ', '.join(metadata['actors']), + 'genres': ', '.join(metadata['genres']), 'summary': metadata['summary'], + 'tagline': metadata['tagline'], 'rating': metadata['rating'], 'duration': duration, 'stream_duration': stream_duration, diff --git a/plexpy/pmsconnect.py b/plexpy/pmsconnect.py index 36939bfa..fdecfae6 100644 --- a/plexpy/pmsconnect.py +++ b/plexpy/pmsconnect.py @@ -413,9 +413,9 @@ class PmsConnect(object): 'parent_index': helpers.get_xml_attr(metadata_main, 'parentIndex'), 'parent_title': helpers.get_xml_attr(metadata_main, 'parentTitle'), 'index': helpers.get_xml_attr(metadata_main, 'index'), - 'studio': helpers.get_xml_attr(metadata_main, 'studio'), + 'studio': show_details['metadata']['studio'], 'title': helpers.get_xml_attr(metadata_main, 'title'), - 'content_rating': helpers.get_xml_attr(metadata_main, 'contentRating'), + 'content_rating': show_details['metadata']['content_rating'], 'summary': show_details['metadata']['summary'], 'tagline': helpers.get_xml_attr(metadata_main, 'tagline'), 'rating': helpers.get_xml_attr(metadata_main, 'rating'), @@ -430,13 +430,15 @@ class PmsConnect(object): 'updated_at': helpers.get_xml_attr(metadata_main, 'updatedAt'), 'last_viewed_at': helpers.get_xml_attr(metadata_main, 'lastViewedAt'), 'guid': helpers.get_xml_attr(metadata_main, 'guid'), - 'genres': genres, - 'actors': actors, - 'writers': writers, - 'directors': directors + 'genres': show_details['metadata']['genres'], + 'actors': show_details['metadata']['actors'], + 'writers': show_details['metadata']['writers'], + 'directors': show_details['metadata']['directors'] } metadata_list = {'metadata': metadata} elif metadata_type == 'episode': + grandparent_rating_key = helpers.get_xml_attr(metadata_main, 'grandparentRatingKey') + show_details = self.get_metadata_details(grandparent_rating_key) metadata = {'media_type': metadata_type, 'rating_key': helpers.get_xml_attr(metadata_main, 'ratingKey'), 'parent_rating_key': helpers.get_xml_attr(metadata_main, 'parentRatingKey'), @@ -445,7 +447,7 @@ class PmsConnect(object): 'parent_index': helpers.get_xml_attr(metadata_main, 'parentIndex'), 'parent_title': helpers.get_xml_attr(metadata_main, 'parentTitle'), 'index': helpers.get_xml_attr(metadata_main, 'index'), - 'studio': helpers.get_xml_attr(metadata_main, 'studio'), + 'studio': show_details['metadata']['studio'], 'title': helpers.get_xml_attr(metadata_main, 'title'), 'content_rating': helpers.get_xml_attr(metadata_main, 'contentRating'), 'summary': helpers.get_xml_attr(metadata_main, 'summary'), @@ -462,10 +464,10 @@ class PmsConnect(object): 'updated_at': helpers.get_xml_attr(metadata_main, 'updatedAt'), 'last_viewed_at': helpers.get_xml_attr(metadata_main, 'lastViewedAt'), 'guid': helpers.get_xml_attr(metadata_main, 'guid'), + 'genres': show_details['metadata']['genres'], + 'actors': show_details['metadata']['actors'], 'writers': writers, - 'directors': directors, - 'genres': genres, - 'actors': actors + 'directors': directors } metadata_list = {'metadata': metadata} elif metadata_type == 'movie': @@ -589,7 +591,7 @@ class PmsConnect(object): 'updated_at': helpers.get_xml_attr(metadata_main, 'updatedAt'), 'last_viewed_at': helpers.get_xml_attr(metadata_main, 'lastViewedAt'), 'guid': helpers.get_xml_attr(metadata_main, 'guid'), - 'genres': genres, + 'genres': album_details['metadata']['genres'], 'actors': actors, 'writers': writers, 'directors': directors