diff --git a/plexpy/datafactory.py b/plexpy/datafactory.py index c494f102..6eda7dcf 100644 --- a/plexpy/datafactory.py +++ b/plexpy/datafactory.py @@ -713,9 +713,9 @@ class DataFactory(object): if row_id: query = 'SELECT rating_key, parent_rating_key, grandparent_rating_key, title, parent_title, grandparent_title, ' \ - 'full_title, media_index, parent_media_index, thumb, parent_thumb, grandparent_thumb, art, media_type, ' \ - 'year, originally_available_at, added_at, updated_at, last_viewed_at, content_rating, summary, tagline, ' \ - 'rating, duration, guid, directors, writers, actors, genres, studio ' \ + 'full_title, library_title, media_index, parent_media_index, library_id, thumb, parent_thumb, grandparent_thumb, ' \ + 'art, media_type, year, originally_available_at, added_at, updated_at, last_viewed_at, content_rating, summary, ' \ + 'tagline, rating, duration, guid, directors, writers, actors, genres, studio ' \ 'FROM session_history_metadata ' \ 'WHERE id = ?' result = monitor_db.select(query=query, args=[row_id]) @@ -757,7 +757,9 @@ class DataFactory(object): 'writers': writers, 'directors': directors, 'genres': genres, - 'actors': actors + 'actors': actors, + 'library_title': item['library_title'], + 'library_id': item['library_id'] } return metadata diff --git a/plexpy/pmsconnect.py b/plexpy/pmsconnect.py index bb2da415..65ef5321 100644 --- a/plexpy/pmsconnect.py +++ b/plexpy/pmsconnect.py @@ -347,6 +347,9 @@ class PmsConnect(object): else: logger.debug(u"Metadata failed") + library_id = helpers.get_xml_attr(a, 'librarySectionID') + library_title = helpers.get_xml_attr(a, 'librarySectionTitle') + genres = [] actors = [] writers = [] @@ -368,8 +371,42 @@ class PmsConnect(object): for director in metadata_main.getElementsByTagName('Director'): directors.append(helpers.get_xml_attr(director, 'tag')) - if metadata_type == 'show': + if metadata_type == 'movie': metadata = {'type': metadata_type, + 'library_id': library_id, + 'library_title': library_title, + 'rating_key': helpers.get_xml_attr(metadata_main, 'ratingKey'), + 'grandparent_title': helpers.get_xml_attr(metadata_main, 'grandparentTitle'), + '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'), + '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'), + 'tagline': helpers.get_xml_attr(metadata_main, 'tagline'), + 'rating': helpers.get_xml_attr(metadata_main, 'rating'), + 'duration': helpers.get_xml_attr(metadata_main, 'duration'), + 'year': helpers.get_xml_attr(metadata_main, 'year'), + 'thumb': helpers.get_xml_attr(metadata_main, 'thumb'), + 'parent_thumb': helpers.get_xml_attr(metadata_main, 'parentThumb'), + 'grandparent_thumb': helpers.get_xml_attr(metadata_main, 'grandparentThumb'), + 'art': helpers.get_xml_attr(metadata_main, 'art'), + 'originally_available_at': helpers.get_xml_attr(metadata_main, 'originallyAvailableAt'), + 'added_at': helpers.get_xml_attr(metadata_main, 'addedAt'), + '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 + } + metadata_list = {'metadata': metadata} + elif metadata_type == 'show': + metadata = {'type': metadata_type, + 'library_id': library_id, + 'library_title': library_title, 'rating_key': helpers.get_xml_attr(metadata_main, 'ratingKey'), 'grandparent_title': helpers.get_xml_attr(metadata_main, 'grandparentTitle'), 'parent_index': helpers.get_xml_attr(metadata_main, 'parentIndex'), @@ -402,6 +439,8 @@ class PmsConnect(object): parent_rating_key = helpers.get_xml_attr(metadata_main, 'parentRatingKey') show_details = self.get_metadata_details(parent_rating_key) metadata = {'type': metadata_type, + 'library_id': library_id, + 'library_title': library_title, 'rating_key': helpers.get_xml_attr(metadata_main, 'ratingKey'), 'parent_rating_key': helpers.get_xml_attr(metadata_main, 'parentRatingKey'), 'grandparent_title': helpers.get_xml_attr(metadata_main, 'grandparentTitle'), @@ -433,6 +472,8 @@ class PmsConnect(object): metadata_list = {'metadata': metadata} elif metadata_type == 'episode': metadata = {'type': metadata_type, + 'library_id': library_id, + 'library_title': library_title, 'rating_key': helpers.get_xml_attr(metadata_main, 'ratingKey'), 'parent_rating_key': helpers.get_xml_attr(metadata_main, 'parentRatingKey'), 'grandparent_rating_key': helpers.get_xml_attr(metadata_main, 'grandparentRatingKey'), @@ -463,38 +504,10 @@ class PmsConnect(object): 'actors': actors } metadata_list = {'metadata': metadata} - elif metadata_type == 'movie': - metadata = {'type': metadata_type, - 'rating_key': helpers.get_xml_attr(metadata_main, 'ratingKey'), - 'grandparent_title': helpers.get_xml_attr(metadata_main, 'grandparentTitle'), - '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'), - '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'), - 'tagline': helpers.get_xml_attr(metadata_main, 'tagline'), - 'rating': helpers.get_xml_attr(metadata_main, 'rating'), - 'duration': helpers.get_xml_attr(metadata_main, 'duration'), - 'year': helpers.get_xml_attr(metadata_main, 'year'), - 'thumb': helpers.get_xml_attr(metadata_main, 'thumb'), - 'parent_thumb': helpers.get_xml_attr(metadata_main, 'parentThumb'), - 'grandparent_thumb': helpers.get_xml_attr(metadata_main, 'grandparentThumb'), - 'art': helpers.get_xml_attr(metadata_main, 'art'), - 'originally_available_at': helpers.get_xml_attr(metadata_main, 'originallyAvailableAt'), - 'added_at': helpers.get_xml_attr(metadata_main, 'addedAt'), - '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 - } - metadata_list = {'metadata': metadata} elif metadata_type == 'artist': metadata = {'type': metadata_type, + 'library_id': library_id, + 'library_title': library_title, 'rating_key': helpers.get_xml_attr(metadata_main, 'ratingKey'), 'grandparent_title': helpers.get_xml_attr(metadata_main, 'grandparentTitle'), 'parent_index': helpers.get_xml_attr(metadata_main, 'parentIndex'), @@ -527,6 +540,8 @@ class PmsConnect(object): parent_rating_key = helpers.get_xml_attr(metadata_main, 'parentRatingKey') artist_details = self.get_metadata_details(parent_rating_key) metadata = {'type': metadata_type, + 'library_id': library_id, + 'library_title': library_title, 'rating_key': helpers.get_xml_attr(metadata_main, 'ratingKey'), 'parent_rating_key': helpers.get_xml_attr(metadata_main, 'parentRatingKey'), 'grandparent_title': helpers.get_xml_attr(metadata_main, 'grandparentTitle'), @@ -560,6 +575,8 @@ class PmsConnect(object): parent_rating_key = helpers.get_xml_attr(metadata_main, 'parentRatingKey') album_details = self.get_metadata_details(parent_rating_key) metadata = {'type': metadata_type, + 'library_id': library_id, + 'library_title': library_title, 'rating_key': helpers.get_xml_attr(metadata_main, 'ratingKey'), 'parent_rating_key': helpers.get_xml_attr(metadata_main, 'parentRatingKey'), 'grandparent_rating_key': helpers.get_xml_attr(metadata_main, 'grandparentRatingKey'),