diff --git a/data/interfaces/default/js/tables/media_info_table.js b/data/interfaces/default/js/tables/media_info_table.js index 48f92a8a..051e09b1 100644 --- a/data/interfaces/default/js/tables/media_info_table.js +++ b/data/interfaces/default/js/tables/media_info_table.js @@ -68,7 +68,7 @@ media_info_table_options = { }, { "targets": [1], - "data": "title", + "data": "sort_title", "createdCell": function (td, cellData, rowData, row, col) { if (cellData !== null && cellData !== '') { var parent_info = ''; @@ -77,31 +77,31 @@ media_info_table_options = { if (rowData['media_type'] === 'movie') { if (rowData['year']) { parent_info = ' (' + rowData['year'] + ')'; } media_type = ''; - thumb_popover = '' + cellData + parent_info + '' + thumb_popover = '' + rowData['title'] + parent_info + '' $(td).html('
'); } else if (rowData['media_type'] === 'show') { media_type = ''; - thumb_popover = '' + cellData + '' + thumb_popover = '' + rowData['title'] + '' $(td).html(''); } else if (rowData['media_type'] === 'season') { media_type = ''; - thumb_popover = '' + cellData + '' + thumb_popover = '' + rowData['title'] + '' $(td).html(''); } else if (rowData['media_type'] === 'episode') { media_type = ''; - thumb_popover = 'E' + rowData['media_index'] + ' - ' + cellData + '' + thumb_popover = 'E' + rowData['media_index'] + ' - ' + rowData['title'] + '' $(td).html(''); } else if (rowData['media_type'] === 'artist') { media_type = ''; - thumb_popover = '' + cellData + '' + thumb_popover = '' + rowData['title'] + '' $(td).html(''); } else if (rowData['media_type'] === 'album') { media_type = ''; - thumb_popover = '' + cellData + '' + thumb_popover = '' + rowData['title'] + '' $(td).html(''); } else if (rowData['media_type'] === 'track') { media_type = ''; - thumb_popover = 'T' + rowData['media_index'] + ' - ' + cellData + '' + thumb_popover = 'T' + rowData['media_index'] + ' - ' + rowData['title'] + '' $(td).html(''); } else { $(td).html(cellData); diff --git a/plexpy/libraries.py b/plexpy/libraries.py index 6ed2389a..2bc007ab 100644 --- a/plexpy/libraries.py +++ b/plexpy/libraries.py @@ -416,6 +416,7 @@ class Libraries(object): 'parent_rating_key': item['parent_rating_key'], 'grandparent_rating_key': item['grandparent_rating_key'], 'title': item['title'], + 'sort_title': item['sort_title'] or item['title'], 'year': item['year'], 'media_index': item['media_index'], 'parent_media_index': item['parent_media_index'], @@ -483,12 +484,12 @@ class Libraries(object): filtered_count = len(results) # Sort results - results = sorted(results, key=lambda k: k['title']) + results = sorted(results, key=lambda k: k['sort_title']) sort_order = json_data['order'] for order in reversed(sort_order): sort_key = json_data['columns'][int(order['column'])]['data'] reverse = True if order['dir'] == 'desc' else False - if rating_key and sort_key == 'title': + if rating_key and sort_key == 'sort_title': results = sorted(results, key=lambda k: helpers.cast_to_int(k['media_index']), reverse=reverse) elif sort_key == 'file_size' or sort_key == 'bitrate': results = sorted(results, key=lambda k: helpers.cast_to_int(k[sort_key]), reverse=reverse) diff --git a/plexpy/pmsconnect.py b/plexpy/pmsconnect.py index 36c07ac6..4f255d9b 100644 --- a/plexpy/pmsconnect.py +++ b/plexpy/pmsconnect.py @@ -548,6 +548,7 @@ class PmsConnect(object): 'title': helpers.get_xml_attr(item, 'title'), 'parent_title': helpers.get_xml_attr(item, 'parentTitle'), 'grandparent_title': helpers.get_xml_attr(item, 'grandparentTitle'), + 'sort_title': helpers.get_xml_attr(item, 'titleSort'), 'media_index': helpers.get_xml_attr(item, 'index'), 'parent_media_index': helpers.get_xml_attr(item, 'parentIndex'), 'section_id': section_id if section_id else helpers.get_xml_attr(item, 'librarySectionID'), @@ -571,6 +572,7 @@ class PmsConnect(object): 'title': helpers.get_xml_attr(item, 'title'), 'parent_title': helpers.get_xml_attr(item, 'parentTitle'), 'grandparent_title': helpers.get_xml_attr(item, 'grandparentTitle'), + 'sort_title': helpers.get_xml_attr(item, 'titleSort'), 'media_index': helpers.get_xml_attr(item, 'index'), 'parent_media_index': helpers.get_xml_attr(item, 'parentIndex'), 'section_id': section_id if section_id else helpers.get_xml_attr(item, 'librarySectionID'), @@ -668,6 +670,7 @@ class PmsConnect(object): 'title': helpers.get_xml_attr(metadata_main, 'title'), 'parent_title': helpers.get_xml_attr(metadata_main, 'parentTitle'), 'grandparent_title': helpers.get_xml_attr(metadata_main, 'grandparentTitle'), + 'sort_title': helpers.get_xml_attr(metadata_main, 'titleSort'), 'media_index': helpers.get_xml_attr(metadata_main, 'index'), 'parent_media_index': helpers.get_xml_attr(metadata_main, 'parentIndex'), 'studio': helpers.get_xml_attr(metadata_main, 'studio'), @@ -707,6 +710,7 @@ class PmsConnect(object): 'title': helpers.get_xml_attr(metadata_main, 'title'), 'parent_title': helpers.get_xml_attr(metadata_main, 'parentTitle'), 'grandparent_title': helpers.get_xml_attr(metadata_main, 'grandparentTitle'), + 'sort_title': helpers.get_xml_attr(metadata_main, 'titleSort'), 'media_index': helpers.get_xml_attr(metadata_main, 'index'), 'parent_media_index': helpers.get_xml_attr(metadata_main, 'parentIndex'), 'studio': helpers.get_xml_attr(metadata_main, 'studio'), @@ -748,6 +752,7 @@ class PmsConnect(object): 'title': helpers.get_xml_attr(metadata_main, 'title'), 'parent_title': helpers.get_xml_attr(metadata_main, 'parentTitle'), 'grandparent_title': helpers.get_xml_attr(metadata_main, 'grandparentTitle'), + 'sort_title': helpers.get_xml_attr(metadata_main, 'titleSort'), 'media_index': helpers.get_xml_attr(metadata_main, 'index'), 'parent_media_index': helpers.get_xml_attr(metadata_main, 'parentIndex'), 'studio': show_details['studio'], @@ -790,6 +795,7 @@ class PmsConnect(object): 'title': helpers.get_xml_attr(metadata_main, 'title'), 'parent_title': 'Season %s' % helpers.get_xml_attr(metadata_main, 'parentIndex'), 'grandparent_title': helpers.get_xml_attr(metadata_main, 'grandparentTitle'), + 'sort_title': helpers.get_xml_attr(metadata_main, 'titleSort'), 'media_index': helpers.get_xml_attr(metadata_main, 'index'), 'parent_media_index': helpers.get_xml_attr(metadata_main, 'parentIndex'), 'studio': show_details['studio'], @@ -830,6 +836,7 @@ class PmsConnect(object): 'title': helpers.get_xml_attr(metadata_main, 'title'), 'parent_title': helpers.get_xml_attr(metadata_main, 'parentTitle'), 'grandparent_title': helpers.get_xml_attr(metadata_main, 'grandparentTitle'), + 'sort_title': helpers.get_xml_attr(metadata_main, 'titleSort'), 'media_index': helpers.get_xml_attr(metadata_main, 'index'), 'parent_media_index': helpers.get_xml_attr(metadata_main, 'parentIndex'), 'studio': helpers.get_xml_attr(metadata_main, 'studio'), @@ -871,6 +878,7 @@ class PmsConnect(object): 'title': helpers.get_xml_attr(metadata_main, 'title'), 'parent_title': helpers.get_xml_attr(metadata_main, 'parentTitle'), 'grandparent_title': helpers.get_xml_attr(metadata_main, 'grandparentTitle'), + 'sort_title': helpers.get_xml_attr(metadata_main, 'titleSort'), 'media_index': helpers.get_xml_attr(metadata_main, 'index'), 'parent_media_index': helpers.get_xml_attr(metadata_main, 'parentIndex'), 'studio': helpers.get_xml_attr(metadata_main, 'studio'), @@ -913,6 +921,7 @@ class PmsConnect(object): 'title': helpers.get_xml_attr(metadata_main, 'title'), 'parent_title': helpers.get_xml_attr(metadata_main, 'parentTitle'), 'grandparent_title': helpers.get_xml_attr(metadata_main, 'grandparentTitle'), + 'sort_title': helpers.get_xml_attr(metadata_main, 'titleSort'), 'media_index': helpers.get_xml_attr(metadata_main, 'index'), 'parent_media_index': helpers.get_xml_attr(metadata_main, 'parentIndex'), 'studio': helpers.get_xml_attr(metadata_main, 'studio'), @@ -953,6 +962,7 @@ class PmsConnect(object): 'title': helpers.get_xml_attr(metadata_main, 'title'), 'parent_title': helpers.get_xml_attr(metadata_main, 'parentTitle'), 'grandparent_title': helpers.get_xml_attr(metadata_main, 'grandparentTitle'), + 'sort_title': helpers.get_xml_attr(metadata_main, 'titleSort'), 'media_index': helpers.get_xml_attr(metadata_main, 'index'), 'parent_media_index': helpers.get_xml_attr(metadata_main, 'parentIndex'), 'studio': helpers.get_xml_attr(metadata_main, 'studio'), @@ -994,6 +1004,7 @@ class PmsConnect(object): 'title': helpers.get_xml_attr(metadata_main, 'title'), 'parent_title': helpers.get_xml_attr(metadata_main, 'parentTitle'), 'grandparent_title': helpers.get_xml_attr(metadata_main, 'grandparentTitle'), + 'sort_title': helpers.get_xml_attr(metadata_main, 'titleSort'), 'media_index': helpers.get_xml_attr(metadata_main, 'index'), 'parent_media_index': helpers.get_xml_attr(metadata_main, 'parentIndex'), 'studio': helpers.get_xml_attr(metadata_main, 'studio'), @@ -1034,6 +1045,7 @@ class PmsConnect(object): 'title': helpers.get_xml_attr(metadata_main, 'title'), 'parent_title': helpers.get_xml_attr(metadata_main, 'parentTitle'), 'grandparent_title': helpers.get_xml_attr(metadata_main, 'grandparentTitle'), + 'sort_title': helpers.get_xml_attr(metadata_main, 'titleSort'), 'media_index': helpers.get_xml_attr(metadata_main, 'index'), 'parent_media_index': helpers.get_xml_attr(metadata_main, 'parentIndex'), 'studio': helpers.get_xml_attr(metadata_main, 'studio'), @@ -1560,6 +1572,7 @@ class PmsConnect(object): 'title': helpers.get_xml_attr(session, 'title'), 'parent_title': helpers.get_xml_attr(session, 'parentTitle'), 'grandparent_title': helpers.get_xml_attr(session, 'grandparentTitle'), + 'sort_title': helpers.get_xml_attr(session, 'titleSort'), 'media_index': helpers.get_xml_attr(session, 'index'), 'parent_media_index': helpers.get_xml_attr(session, 'parentIndex'), 'studio': helpers.get_xml_attr(session, 'studio'), @@ -1986,16 +1999,17 @@ class PmsConnect(object): 'media_type': helpers.get_xml_attr(item, 'type'), 'rating_key': helpers.get_xml_attr(item, 'ratingKey'), 'parent_rating_key': helpers.get_xml_attr(item, 'parentRatingKey'), - 'grandparent_rating_key': helpers.get_xml_attr(a, 'grandparentRatingKey'), + 'grandparent_rating_key': helpers.get_xml_attr(item, 'grandparentRatingKey'), 'title': helpers.get_xml_attr(item, 'title'), - 'parent_title': helpers.get_xml_attr(a, 'parentTitle'), - 'grandparent_title': helpers.get_xml_attr(a, 'grandparentTitle'), + 'parent_title': helpers.get_xml_attr(item, 'parentTitle'), + 'grandparent_title': helpers.get_xml_attr(item, 'grandparentTitle'), + 'sort_title': helpers.get_xml_attr(item, 'titleSort'), 'media_index': helpers.get_xml_attr(item, 'index'), - 'parent_media_index': helpers.get_xml_attr(a, 'parentIndex'), + 'parent_media_index': helpers.get_xml_attr(item, 'parentIndex'), 'year': helpers.get_xml_attr(item, 'year'), 'thumb': helpers.get_xml_attr(item, 'thumb'), - 'parent_thumb': helpers.get_xml_attr(a, 'thumb'), - 'grandparent_thumb': helpers.get_xml_attr(a, 'grandparentThumb'), + 'parent_thumb': helpers.get_xml_attr(item, 'thumb'), + 'grandparent_thumb': helpers.get_xml_attr(item, 'grandparentThumb'), 'added_at': helpers.get_xml_attr(item, 'addedAt') }