diff --git a/data/interfaces/default/css/plexpy.css b/data/interfaces/default/css/plexpy.css index 903f91a9..05e822ad 100644 --- a/data/interfaces/default/css/plexpy.css +++ b/data/interfaces/default/css/plexpy.css @@ -876,10 +876,12 @@ a .dashboard-activity-metadata-user-thumb:hover { .summary-navbar-list { padding: 0 25px; color: #999; + white-space: nowrap; + overflow: hidden; } .summary-navbar-list span { - float: left; - margin-right: 20px; + display: inline-block; + margin-right: 15px; } .summary-navbar-list span a { color: #999; @@ -904,6 +906,10 @@ a .dashboard-activity-metadata-user-thumb:hover { line-height: 40px; float: left; clear: left; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + width: 100%; } .summary-content-title h1 a { color: #F9AA03; @@ -920,6 +926,10 @@ a .dashboard-activity-metadata-user-thumb:hover { line-height: 40px; float: left; clear: left; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + width: 100%; } .summary-content-title h3 { margin-top: 0; @@ -927,7 +937,9 @@ a .dashboard-activity-metadata-user-thumb:hover { color: #999; font-size: 28px; line-height: 40px; - float: right; + position: absolute; + bottom: 0; + right: 0; } .summary-content-title h3 a:hover { text-decoration: underline; @@ -973,6 +985,18 @@ a .dashboard-activity-metadata-user-thumb:hover { overflow: hidden; z-index: 1; } +.summary-poster-face-track { + background-position: center; + background-size: cover; + height: 250px; + width: 250px; + position: relative; + webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1); + -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1); + box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1); + overflow: hidden; + z-index: 1; +} .summary-poster-face-overlay { position: absolute; left: 0; @@ -1004,8 +1028,10 @@ a .dashboard-activity-metadata-user-thumb:hover { } a:hover .summary-poster-face .summary-poster-face-overlay, a:hover .summary-poster-face-episode .summary-poster-face-overlay, +a:hover .summary-poster-face-track .summary-poster-face-overlay, a:hover .summary-poster-face .summary-poster-face-overlay span, -a:hover .summary-poster-face-episode .summary-poster-face-overlay span { +a:hover .summary-poster-face-episode .summary-poster-face-overlay span, +a:hover .summary-poster-face-track .summary-poster-face-overlay span { opacity: 1; } .summary-content-padding { @@ -1027,47 +1053,11 @@ a:hover .summary-poster-face-episode .summary-poster-face-overlay span { position: relative; float: left; } -.summary-content-director { +.summary-content-details-tag { float: left; line-height: 24px; } -.summary-content-director strong { - color: #fff; - margin-left: 2px; - margin-right: 10px; -} -.summary-content-studio { - float: left; - line-height: 24px; -} -.summary-content-studio strong { - color: #fff; - margin-left: 2px; - margin-right: 10px; -} -.summary-content-airdate { - float: left; - line-height: 24px; -} -.summary-content-airdate strong { - color: #fff; - margin-left: 2px; - margin-right: 10px; -} -.summary-content-duration { - float: left; - line-height: 24px; -} -.summary-content-duration strong { - color: #fff; - margin-left: 2px; - margin-right: 10px; -} -.summary-content-content-rating { - float: left; - line-height: 24px; -} -.summary-content-content-rating strong { +.summary-content-details-tag strong { color: #fff; margin-left: 2px; margin-right: 10px; @@ -1174,135 +1164,57 @@ a:hover .summary-poster-face-episode .summary-poster-face-overlay span { background-size: contain; height: 16px; } -.show-seasons-wrapper { +.item-children-wrapper { } -.show-seasons-instance { +.item-children-instance { list-style: none; margin: 0; } -.show-seasons-instance li { +.item-children-instance li { float: left; position: relative; left: 0px; margin-right: 25px; margin-bottom: 25px; } -a .show-seasons-card-overlay:hover { +.item-children-instance li.item-children-list-item { + width: 100%; + height: 35px; + margin-right: 0; + margin-bottom: 0; +} +.item-children-poster { + float: left; + position: relative; + left: 0px; +} +a:hover .item-children-poster { webkit-box-shadow: inset 0 0 0 2px #e9a049; -moz-box-shadow: inset 0 0 0 2px #e9a049; box-shadow: inset 0 0 0 2px #e9a049; } -.show-seasons-poster { - float: left; - position: relative; - left: 0px; -} -.show-seasons-card-overlay { - position: absolute; - left: 0; - right: 0; - bottom: 0; - text-align: left; - background: -moz-linear-gradient(top, rgba(0,0,0,0) 30%, rgba(0,0,0,1) 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(30%,rgba(0,0,0,0)), color-stop(100%,rgba(0,0,0,1))); - background: -webkit-linear-gradient(top, rgba(0,0,0,0) 30%,rgba(0,0,0,1) 100%); - background: -o-linear-gradient(top, rgba(0,0,0,0) 30%,rgba(0,0,0,1) 100%); - background: -ms-linear-gradient(top, rgba(0,0,0,0) 30%,rgba(0,0,0,1) 100%); - background: linear-gradient(to bottom, rgba(0,0,0,0) 30%,rgba(0,0,0,1) 100%); - height: 225px; -} -.show-seasons-overlay-text { - color: #aaa; - font-size: 12px; - float: left; - position: absolute; - left: 8px; - bottom: 5px; -} -.show-seasons-instance-text-wrapper { - width: 150px; - font-size: 13px; - margin-bottom: 20px; - clear: both; -} -.show-seasons-instance-text-wrapper h3 { - padding: 5px 3px 0 3px; - color: #fff; - text-overflow: ellipsis; - overflow: hidden; - position: relative; - font-size: 13px; - margin: 0; - line-height: 15px; - font-weight: normal; - width: 250px; - white-space: nowrap; - text-align: left; - clear: both; -} -.show-seasons-title a { - text-decoration: none; - font-size: 14px; - font-weight: normal; - color: #fff; - float: left; - text-overflow: ellipsis; - overflow: hidden; - position: relative; - white-space: nowrap; - width: 205px; - margin-top: 2px; - margin-left: 0px; - margin-bottom: 20px; -} -.show-seasons a:hover { - color: #F9AA03; -} -.season-episodes-wrapper { -} -.season-episodes-instance { - list-style: none; - margin: 0; -} -.season-episodes-instance li { - float: left; - position: relative; - left: 0px; - margin-right: 25px; - margin-bottom: 25px; -} -a .season-episodes-card-overlay:hover { - -webkit-box-shadow: inset 0 0 0 2px #e9a049; - -moz-box-shadow: inset 0 0 0 2px #e9a049; - box-shadow: inset 0 0 0 2px #e9a049; -} -.season-episodes-poster { - float: left; - position: relative; - left: 0px; -} -.season-episodes-poster-face { +.item-children-poster-face { background-position: center; background-size: cover; - height: 140px; - width: 250px; position: relative; -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1); -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1); box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1); + z-index: -2; } -.season-episodes-poster-face img { - bottom: 0; - overflow: hidden; +.item-children-poster-face.season-poster { + width: 150px; + height: 225px; +} +.item-children-poster-face.episode-poster { width: 250px; height: 140px; } -.season-episodes-poster-face img:hover { - -webkit-box-shadow: 0 0 0 2px #F9AA03; - -moz-box-shadow: 0 0 0 2px #F9AA03; - box-shadow: 0 0 0 2px #F9AA03; +.item-children-poster-face.album-poster { + width: 150px; + height: 150px; } -.season-episodes-card-overlay { +.item-children-card-overlay { position: absolute; left: 0; right: 0; @@ -1314,14 +1226,10 @@ a .season-episodes-card-overlay:hover { background: -o-linear-gradient(top, rgba(0,0,0,0) 30%,rgba(0,0,0,1) 100%); background: -ms-linear-gradient(top, rgba(0,0,0,0) 30%,rgba(0,0,0,1) 100%); background: linear-gradient(to bottom, rgba(0,0,0,0) 30%,rgba(0,0,0,1) 100%); - height: 140px; + height: 100%; + z-index: -1; } -.season-episodes-card-overlay-index { - color: #fff; - font-size: 11px; - text-shadow: 0 1px 5px rgba(0,0,0,0.2); -} -.season-episodes-overlay-text { +.item-children-overlay-text { color: #aaa; font-size: 12px; float: left; @@ -1329,7 +1237,22 @@ a .season-episodes-card-overlay:hover { left: 8px; bottom: 5px; } -.season-episodes-instance-text-wrapper h3 { +.item-children-instance-text-wrapper { + font-size: 13px; + margin-bottom: 20px; + clear: both; +} +.item-children-instance-text-wrapper.season-item { + width: 150px; +} +.item-children-instance-text-wrapper.episode-item { + width: 250px; +} +.item-children-instance-text-wrapper.album-item { + width: 150px; +} +.item-children-instance-text-wrapper h3 { + width: 100%; padding: 5px 3px 0 3px; color: #fff; text-overflow: ellipsis; @@ -1339,36 +1262,52 @@ a .season-episodes-card-overlay:hover { margin: 0; line-height: 15px; font-weight: normal; - width: 250px; white-space: nowrap; text-align: left; clear: both; } -.season-episodes-title a { - text-decoration: none; - font-size: 14px; - font-weight: normal; - color: #fff; +.item-children-list-item-odd { + border-top: 0px solid #343434; + border-bottom: 0px solid #343434; + background-color: rgba(255,255,255,0.010); + height: 100%; + font-size: 13px; + padding-top: 10px; +} +.item-children-list-item-even { + border-top: 0px solid #343434; + border-bottom: 0px solid #343434; + background-color: rgba(255,255,255,0.035); + height: 100%; + font-size: 13px; + padding-top: 10px; +} +.item-children-list-item-odd:hover, +.item-children-list-item-even:hover { + background-color: rgba(255,255,255,0.075); +} +.item-children-list-item-index { float: left; + color: #777; + text-align: right; + display: inline-block; + width: 35px; + margin-right: 10px; +} +.item-children-list-item-title { + display: inline-block; + width: calc(100% - 110px); text-overflow: ellipsis; overflow: hidden; - position: relative; white-space: nowrap; - width: 205px; - margin-top: 2px; - margin-left: 0px; - margin-bottom: 20px; } -.season-episodes a:hover { - color: #F9AA03; -} -.season-episodes-season { - color: #aaa; - font-size: 12px; - float: left; - position: absolute; - left: 8px; - bottom: 5px; +.item-children-list-item-duration { + float: right; + color: #777; + text-align: right; + display: inline-block; + width: 40px; + margin-right: 20px; } .settings-alert { float: left; diff --git a/data/interfaces/default/info.html b/data/interfaces/default/info.html index c4e0163c..02b97a10 100644 --- a/data/interfaces/default/info.html +++ b/data/interfaces/default/info.html @@ -61,19 +61,37 @@ DOCUMENTATION :: END ${data['title']} % elif data['type'] == 'season': - TV Shows - + + ${data['parent_title']} Season ${data['index']} % elif data['type'] == 'episode': - TV Shows - - ${data['grandparent_title']} - + + + + Season ${data['parent_index']} Episode ${data['index']} - ${data['title']} + % elif data['type'] == 'artist': + Music + + ${data['title']} + % elif data['type'] == 'album': + + + ${data['parent_title']} + + ${data['title']} + % elif data['type'] == 'track': + + + + + ${data['parent_title']} + + Track ${data['index']} - ${data['title']} % endif @@ -81,13 +99,23 @@ DOCUMENTATION :: END
diff --git a/plexpy/pmsconnect.py b/plexpy/pmsconnect.py index d5444aaf..25b23253 100644 --- a/plexpy/pmsconnect.py +++ b/plexpy/pmsconnect.py @@ -90,31 +90,14 @@ class PmsConnect(object): return request """ - Return list of seasons in requested show. + Return list of children in requested library item. Parameters required: rating_key { ratingKey of parent } Optional parameters: output_format { dict, json } Output: array """ - def get_season_list(self, rating_key='', output_format=''): - uri = '/library/metadata/' + rating_key + '/children' - request = self.request_handler.make_request(uri=uri, - proto=self.protocol, - request_type='GET', - output_format=output_format) - - return request - - """ - Return list of episodes in requested season. - - Parameters required: rating_key { ratingKey of parent } - Optional parameters: output_format { dict, json } - - Output: array - """ - def get_episode_list(self, rating_key='', output_format=''): + def get_children_list(self, rating_key='', output_format=''): uri = '/library/metadata/' + rating_key + '/children' request = self.request_handler.make_request(uri=uri, proto=self.protocol, @@ -381,6 +364,39 @@ class PmsConnect(object): 'actors': actors } metadata_list = {'metadata': metadata} + elif metadata_type == 'season': + parent_rating_key = helpers.get_xml_attr(metadata_main, 'parentRatingKey') + show_details = self.get_metadata_details(parent_rating_key) + metadata = {'type': metadata_type, + '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'), + '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': show_details['metadata']['summary'], + 'tagline': helpers.get_xml_attr(metadata_main, 'tagline'), + 'rating': helpers.get_xml_attr(metadata_main, 'rating'), + 'duration': show_details['metadata']['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 == 'episode': metadata = {'type': metadata_type, 'rating_key': helpers.get_xml_attr(metadata_main, 'ratingKey'), @@ -443,9 +459,39 @@ class PmsConnect(object): 'directors': directors } metadata_list = {'metadata': metadata} - elif metadata_type == 'season': + elif metadata_type == 'artist': + 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'), + 'writers': writers, + 'directors': directors, + 'genres': genres, + 'actors': actors + } + metadata_list = {'metadata': metadata} + elif metadata_type == 'album': parent_rating_key = helpers.get_xml_attr(metadata_main, 'parentRatingKey') - show_details = self.get_metadata_details(parent_rating_key) + artist_details = self.get_metadata_details(parent_rating_key) metadata = {'type': metadata_type, 'rating_key': helpers.get_xml_attr(metadata_main, 'ratingKey'), 'parent_rating_key': helpers.get_xml_attr(metadata_main, 'parentRatingKey'), @@ -456,10 +502,10 @@ class PmsConnect(object): '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': show_details['metadata']['summary'], + 'summary': artist_details['metadata']['summary'], 'tagline': helpers.get_xml_attr(metadata_main, 'tagline'), 'rating': helpers.get_xml_attr(metadata_main, 'rating'), - 'duration': show_details['metadata']['duration'], + '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'), @@ -477,8 +523,12 @@ class PmsConnect(object): } metadata_list = {'metadata': metadata} elif metadata_type == 'track': + parent_rating_key = helpers.get_xml_attr(metadata_main, 'parentRatingKey') + album_details = self.get_metadata_details(parent_rating_key) metadata = {'type': metadata_type, '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'), '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'), @@ -490,7 +540,7 @@ class PmsConnect(object): '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'), + 'year': album_details['metadata']['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'), @@ -989,86 +1039,55 @@ class PmsConnect(object): return session_output """ - Return processed and validated season list. + Return processed and validated children list. Output: array """ - def get_show_children(self, rating_key=''): - season_data = self.get_season_list(rating_key, output_format='xml') + def get_item_children(self, rating_key=''): + children_data = self.get_children_list(rating_key, output_format='xml') try: - xml_head = season_data.getElementsByTagName('MediaContainer') + xml_head = children_data.getElementsByTagName('MediaContainer') except: - logger.warn("Unable to parse XML for get_season_list.") + logger.warn("Unable to parse XML for get_children_list.") return [] - season_list = [] + children_list = [] for a in xml_head: if a.getAttribute('size'): if a.getAttribute('size') == '0': - logger.debug(u"No season data.") - season_list = {'season_count': '0', - 'season_list': [] - } - return season_list + logger.debug(u"No children data.") + children_list = {'children_count': '0', + 'children_list': [] + } + return parent_list + + result_data = [] if a.getElementsByTagName('Directory'): result_data = a.getElementsByTagName('Directory') - for result in result_data: - season_output = {'rating_key': helpers.get_xml_attr(result, 'ratingKey'), - 'index': helpers.get_xml_attr(result, 'index'), - 'title': helpers.get_xml_attr(result, 'title'), - 'thumb': helpers.get_xml_attr(result, 'thumb'), - 'parent_thumb': helpers.get_xml_attr(a, 'thumb') - } - season_list.append(season_output) - - output = {'season_count': helpers.get_xml_attr(xml_head[0], 'size'), - 'title': helpers.get_xml_attr(xml_head[0], 'title2'), - 'season_list': season_list - } - - return output - - """ - Return processed and validated episode list. - - Output: array - """ - def get_season_children(self, rating_key=''): - episode_data = self.get_episode_list(rating_key, output_format='xml') - - try: - xml_head = episode_data.getElementsByTagName('MediaContainer') - except: - logger.warn("Unable to parse XML for get_episode_list.") - return [] - - episode_list = [] - - for a in xml_head: - if a.getAttribute('size'): - if a.getAttribute('size') == '0': - logger.debug(u"No episode data.") - episode_list = {'episode_count': '0', - 'episode_list': [] - } - return episode_list - if a.getElementsByTagName('Video'): result_data = a.getElementsByTagName('Video') - for result in result_data: - episode_output = {'rating_key': helpers.get_xml_attr(result, 'ratingKey'), - 'index': helpers.get_xml_attr(result, 'index'), - 'title': helpers.get_xml_attr(result, 'title'), - 'thumb': helpers.get_xml_attr(result, 'thumb') - } - episode_list.append(episode_output) + if a.getElementsByTagName('Track'): + result_data = a.getElementsByTagName('Track') - output = {'episode_count': helpers.get_xml_attr(xml_head[0], 'size'), + if result_data: + for result in result_data: + children_output = {'rating_key': helpers.get_xml_attr(result, 'ratingKey'), + 'index': helpers.get_xml_attr(result, 'index'), + 'title': helpers.get_xml_attr(result, 'title'), + 'thumb': helpers.get_xml_attr(result, 'thumb'), + 'parent_thumb': helpers.get_xml_attr(a, 'thumb'), + 'duration': helpers.get_xml_attr(result, 'duration') + } + children_list.append(children_output) + + + output = {'children_count': helpers.get_xml_attr(xml_head[0], 'size'), + 'children_type': helpers.get_xml_attr(xml_head[0], 'viewGroup'), 'title': helpers.get_xml_attr(xml_head[0], 'title2'), - 'episode_list': episode_list + 'children_list': children_list } return output diff --git a/plexpy/webserve.py b/plexpy/webserve.py index 6f9b9d2e..6bb6f9ac 100644 --- a/plexpy/webserve.py +++ b/plexpy/webserve.py @@ -821,28 +821,16 @@ class WebInterface(object): return serve_template(templatename="user_platform_stats.html", data=None, title="Platform Stats") @cherrypy.expose - def get_show_children(self, rating_key='', **kwargs): + def get_item_children(self, rating_key='', **kwargs): pms_connect = pmsconnect.PmsConnect() - result = pms_connect.get_show_children(rating_key) + result = pms_connect.get_item_children(rating_key) if result: - return serve_template(templatename="info_season_list.html", data=result, title="Season List") + return serve_template(templatename="info_children_list.html", data=result, title="Children List") else: logger.warn('Unable to retrieve data.') - return serve_template(templatename="info_season_list.html", data=None, title="Season List") - - @cherrypy.expose - def get_season_children(self, rating_key='', **kwargs): - - pms_connect = pmsconnect.PmsConnect() - result = pms_connect.get_season_children(rating_key) - - if result: - return serve_template(templatename="info_episode_list.html", data=result, title="Episode List") - else: - logger.warn('Unable to retrieve data.') - return serve_template(templatename="info_episode_list.html", data=None, title="Episode List") + return serve_template(templatename="info_children_list.html", data=None, title="Children List") @cherrypy.expose def get_metadata_json(self, rating_key='', **kwargs):