diff --git a/data/interfaces/default/js/tables/history_table.js b/data/interfaces/default/js/tables/history_table.js index 0cf8b716..2f337189 100644 --- a/data/interfaces/default/js/tables/history_table.js +++ b/data/interfaces/default/js/tables/history_table.js @@ -133,20 +133,23 @@ history_table_options = { "data":"full_title", "createdCell": function (td, cellData, rowData, row, col) { if (cellData !== '') { + var parent_info = ''; var media_type = ''; var thumb_popover = ''; if (rowData['media_type'] === 'movie') { + if (rowData['year']) { parent_info = ' (' + rowData['year'] + ')'; } media_type = ''; - thumb_popover = '' + cellData + ' (' + rowData['year'] + ')' + thumb_popover = '' + cellData + parent_info + '' $(td).html('
' + media_type + ' ' + thumb_popover + '
'); } else if (rowData['media_type'] === 'episode') { + if (rowData['parent_media_index'] && rowData['media_index']) { parent_info = ' (S' + rowData['parent_media_index'] + '· E' + rowData['media_index'] + ')'; } media_type = ''; - thumb_popover = '' + cellData + ' \ - (S' + rowData['parent_media_index'] + '· E' + rowData['media_index'] + ')' + thumb_popover = '' + cellData + parent_info + '' $(td).html('
' + media_type + ' ' + thumb_popover + '
'); } else if (rowData['media_type'] === 'track') { + if (rowData['parent_title']) { parent_info = ' (' + rowData['parent_title'] + ')'; } media_type = ''; - thumb_popover = '' + cellData + ' (' + rowData['parent_title'] + ')' + thumb_popover = '' + cellData + parent_info + '' $(td).html('
' + media_type + ' ' + thumb_popover + '
'); } else { $(td).html('' + cellData + ''); diff --git a/data/interfaces/default/js/tables/history_table_modal.js b/data/interfaces/default/js/tables/history_table_modal.js index 30cd1db7..e9cbee8d 100644 --- a/data/interfaces/default/js/tables/history_table_modal.js +++ b/data/interfaces/default/js/tables/history_table_modal.js @@ -97,21 +97,24 @@ history_table_modal_options = { "data":"full_title", "createdCell": function (td, cellData, rowData, row, col) { if (cellData !== '') { + var parent_info = ''; var media_type = ''; var thumb_popover = ''; if (rowData['media_type'] === 'movie') { + if (rowData['year']) { parent_info = ' (' + rowData['year'] + ')'; } media_type = ''; - thumb_popover = '' + cellData + ' (' + rowData['year'] + ')' - $(td).html('
' + media_type + ' ' + thumb_popover + '
'); + thumb_popover = '' + cellData + parent_info + '' + $(td).html('
' + media_type + ' ' + thumb_popover + '
'); } else if (rowData['media_type'] === 'episode') { + if (rowData['parent_media_index'] && rowData['media_index']) { parent_info = ' (S' + rowData['parent_media_index'] + '· E' + rowData['media_index'] + ')'; } media_type = ''; - thumb_popover = '' + cellData + ' \ - (S' + rowData['parent_media_index'] + '· E' + rowData['media_index'] + ')' - $(td).html('
' + media_type + ' ' + thumb_popover + '
'); + thumb_popover = '' + cellData + parent_info + '' + $(td).html('
' + media_type + ' ' + thumb_popover + '
'); } else if (rowData['media_type'] === 'track') { + if (rowData['parent_title']) { parent_info = ' (' + rowData['parent_title'] + ')'; } media_type = ''; - thumb_popover = '' + cellData + ' (' + rowData['parent_title'] + ')' - $(td).html('
' + media_type + ' ' + thumb_popover + '
'); + thumb_popover = '' + cellData + parent_info + '' + $(td).html('
' + media_type + ' ' + thumb_popover + '
'); } else { $(td).html('' + cellData + ''); } diff --git a/data/interfaces/default/js/tables/libraries.js b/data/interfaces/default/js/tables/libraries.js index ac06b187..2fcb3346 100644 --- a/data/interfaces/default/js/tables/libraries.js +++ b/data/interfaces/default/js/tables/libraries.js @@ -136,20 +136,24 @@ libraries_list_table_options = { "data":"last_played", "createdCell": function (td, cellData, rowData, row, col) { if (cellData !== null && cellData !== '') { + var parent_info = ''; var media_type = ''; - var thumb_popover = '' + var thumb_popover = ''; if (rowData['media_type'] === 'movie') { + if (rowData['year']) { parent_info = ' (' + rowData['year'] + ')'; } media_type = ''; - thumb_popover = '' + cellData + '' - $(td).html('
' + media_type + ' ' + thumb_popover + '
'); + thumb_popover = '' + cellData + parent_info + '' + $(td).html('
' + media_type + ' ' + thumb_popover + '
'); } else if (rowData['media_type'] === 'episode') { + if (rowData['parent_media_index'] && rowData['media_index']) { parent_info = ' (S' + rowData['parent_media_index'] + '· E' + rowData['media_index'] + ')'; } media_type = ''; - thumb_popover = '' + cellData + '' - $(td).html('
' + media_type + ' ' + thumb_popover + '
'); + thumb_popover = '' + cellData + parent_info + '' + $(td).html('
' + media_type + ' ' + thumb_popover + '
'); } else if (rowData['media_type'] === 'track') { + if (rowData['parent_title']) { parent_info = ' (' + rowData['parent_title'] + ')'; } media_type = ''; - thumb_popover = '' + cellData + '' - $(td).html('
' + media_type + ' ' + thumb_popover + '
'); + thumb_popover = '' + cellData + parent_info + '' + $(td).html('
' + media_type + ' ' + thumb_popover + '
'); } else if (rowData['media_type']) { $(td).html('' + cellData + ''); } diff --git a/data/interfaces/default/js/tables/media_info_table.js b/data/interfaces/default/js/tables/media_info_table.js index 7066c038..d9d745cc 100644 --- a/data/interfaces/default/js/tables/media_info_table.js +++ b/data/interfaces/default/js/tables/media_info_table.js @@ -66,11 +66,13 @@ media_info_table_options = { "data": "title", "createdCell": function (td, cellData, rowData, row, col) { if (cellData !== null && cellData !== '') { + var parent_info = ''; var media_type = ''; var thumb_popover = ''; if (rowData['media_type'] === 'movie') { + if (rowData['year']) { parent_info = ' (' + rowData['year'] + ')'; } media_type = ''; - thumb_popover = '' + cellData + ' (' + rowData['year'] + ')' + thumb_popover = '' + cellData + parent_info + '' $(td).html('
' + media_type + ' ' + thumb_popover + '
'); } else if (rowData['media_type'] === 'show') { media_type = ''; diff --git a/data/interfaces/default/js/tables/user_ips.js b/data/interfaces/default/js/tables/user_ips.js index 3cbd6c91..d025d7d6 100644 --- a/data/interfaces/default/js/tables/user_ips.js +++ b/data/interfaces/default/js/tables/user_ips.js @@ -64,12 +64,12 @@ user_ip_table_options = { "createdCell": function (td, cellData, rowData, row, col) { if (cellData) { var transcode_dec = ''; - if (rowData['video_decision'] === 'transcode') { - transcode_dec = ' '; - } else if (rowData['video_decision'] === 'copy') { - transcode_dec = ' '; - } else if (rowData['video_decision'] === 'direct play' || rowData['video_decision'] === '') { - transcode_dec = ' '; + if (rowData['video_decision'] === 'transcode' || rowData['audio_decision'] === 'transcode') { + transcode_dec = ''; + } else if (rowData['video_decision'] === 'copy' || rowData['audio_decision'] === 'copy') { + transcode_dec = ''; + } else if (rowData['video_decision'] === 'direct play' || rowData['audio_decision'] === 'direct play') { + transcode_dec = ''; } $(td).html('
' + transcode_dec + ' ' + cellData + '
'); } else { @@ -84,20 +84,24 @@ user_ip_table_options = { "data":"last_played", "createdCell": function (td, cellData, rowData, row, col) { if (cellData !== '') { + var parent_info = ''; var media_type = ''; - var thumb_popover = '' + var thumb_popover = ''; if (rowData['media_type'] === 'movie') { + if (rowData['year']) { parent_info = ' (' + rowData['year'] + ')'; } media_type = ''; - thumb_popover = '' + cellData + '' - $(td).html('
' + media_type + ' ' + thumb_popover + '
'); + thumb_popover = '' + cellData + parent_info + '' + $(td).html('
' + media_type + ' ' + thumb_popover + '
'); } else if (rowData['media_type'] === 'episode') { + if (rowData['parent_media_index'] && rowData['media_index']) { parent_info = ' (S' + rowData['parent_media_index'] + '· E' + rowData['media_index'] + ')'; } media_type = ''; - thumb_popover = '' + cellData + '' - $(td).html('
' + media_type + ' ' + thumb_popover + '
'); + thumb_popover = '' + cellData + parent_info + '' + $(td).html('
' + media_type + ' ' + thumb_popover + '
'); } else if (rowData['media_type'] === 'track') { + if (rowData['parent_title']) { parent_info = ' (' + rowData['parent_title'] + ')'; } media_type = ''; - thumb_popover = '' + cellData + '' - $(td).html('
' + media_type + ' ' + thumb_popover + '
'); + thumb_popover = '' + cellData + parent_info + '' + $(td).html('
' + media_type + ' ' + thumb_popover + '
'); } else if (rowData['media_type']) { $(td).html('' + cellData + ''); } else { diff --git a/data/interfaces/default/js/tables/users.js b/data/interfaces/default/js/tables/users.js index 1a47439f..aeda3df1 100644 --- a/data/interfaces/default/js/tables/users.js +++ b/data/interfaces/default/js/tables/users.js @@ -140,20 +140,24 @@ users_list_table_options = { "data":"last_played", "createdCell": function (td, cellData, rowData, row, col) { if (cellData !== null && cellData !== '') { + var parent_info = ''; var media_type = ''; - var thumb_popover = '' + var thumb_popover = ''; if (rowData['media_type'] === 'movie') { + if (rowData['year']) { parent_info = ' (' + rowData['year'] + ')'; } media_type = ''; - thumb_popover = '' + cellData + '' - $(td).html('
' + media_type + ' ' + thumb_popover + '
'); + thumb_popover = '' + cellData + parent_info + '' + $(td).html('
' + media_type + ' ' + thumb_popover + '
'); } else if (rowData['media_type'] === 'episode') { + if (rowData['parent_media_index'] && rowData['media_index']) { parent_info = ' (S' + rowData['parent_media_index'] + '· E' + rowData['media_index'] + ')'; } media_type = ''; - thumb_popover = '' + cellData + '' - $(td).html('
' + media_type + ' ' + thumb_popover + '
'); + thumb_popover = '' + cellData + parent_info + '' + $(td).html('
' + media_type + ' ' + thumb_popover + '
'); } else if (rowData['media_type'] === 'track') { + if (rowData['parent_title']) { parent_info = ' (' + rowData['parent_title'] + ')'; } media_type = ''; - thumb_popover = '' + cellData + '' - $(td).html('
' + media_type + ' ' + thumb_popover + '
'); + thumb_popover = '' + cellData + parent_info + '' + $(td).html('
' + media_type + ' ' + thumb_popover + '
'); } else if (rowData['media_type']) { $(td).html('' + cellData + ''); } diff --git a/plexpy/libraries.py b/plexpy/libraries.py index 01a3b2f5..d61be644 100644 --- a/plexpy/libraries.py +++ b/plexpy/libraries.py @@ -112,11 +112,15 @@ class Libraries(object): 'MAX(session_history.started) AS last_accessed', 'MAX(session_history.id) AS id', 'session_history_metadata.full_title AS last_played', + 'session_history.rating_key', + 'session_history_metadata.media_type', 'session_history_metadata.thumb', 'session_history_metadata.parent_thumb', 'session_history_metadata.grandparent_thumb', - 'session_history_metadata.media_type', - 'session_history.rating_key', + 'session_history_metadata.parent_title', + 'session_history_metadata.year', + 'session_history_metadata.media_index', + 'session_history_metadata.parent_media_index', 'session_history_media_info.video_decision', 'library_sections.do_notify', 'library_sections.do_notify_created', @@ -175,10 +179,13 @@ class Libraries(object): 'last_accessed': item['last_accessed'], 'id': item['id'], 'last_played': item['last_played'], - 'thumb': thumb, - 'media_type': item['media_type'], 'rating_key': item['rating_key'], - 'video_decision': item['video_decision'], + 'media_type': item['media_type'], + 'thumb': thumb, + 'parent_title': item['parent_title'], + 'year': item['year'], + 'media_index': item['media_index'], + 'parent_media_index': item['parent_media_index'], 'do_notify': helpers.checked(item['do_notify']), 'do_notify_created': helpers.checked(item['do_notify_created']), 'keep_history': helpers.checked(item['keep_history']) diff --git a/plexpy/users.py b/plexpy/users.py index 529d8942..d4221efa 100644 --- a/plexpy/users.py +++ b/plexpy/users.py @@ -38,11 +38,15 @@ class Users(object): 'session_history.ip_address', 'session_history.platform', 'session_history.player', + 'session_history.rating_key', + 'session_history_metadata.media_type', 'session_history_metadata.thumb', 'session_history_metadata.parent_thumb', 'session_history_metadata.grandparent_thumb', - 'session_history_metadata.media_type', - 'session_history.rating_key', + 'session_history_metadata.parent_title', + 'session_history_metadata.year', + 'session_history_metadata.media_index', + 'session_history_metadata.parent_media_index', 'session_history_media_info.video_decision', 'session_history_media_info.audio_decision', 'users.do_notify as do_notify', @@ -102,9 +106,13 @@ class Users(object): 'ip_address': item['ip_address'], 'platform': platform, 'player': item['player'], - 'thumb': thumb, - 'media_type': item['media_type'], 'rating_key': item['rating_key'], + 'media_type': item['media_type'], + 'thumb': thumb, + 'parent_title': item['parent_title'], + 'year': item['year'], + 'media_index': item['media_index'], + 'parent_media_index': item['parent_media_index'], 'video_decision': item['video_decision'], 'audio_decision': item['audio_decision'], 'do_notify': helpers.checked(item['do_notify']), @@ -132,13 +140,18 @@ class Users(object): 'COUNT(session_history.id) AS play_count', 'session_history.platform', 'session_history.player', + 'session_history.rating_key', 'session_history_metadata.full_title AS last_played', 'session_history_metadata.thumb', 'session_history_metadata.parent_thumb', 'session_history_metadata.grandparent_thumb', 'session_history_metadata.media_type', - 'session_history.rating_key', + 'session_history_metadata.parent_title', + 'session_history_metadata.year', + 'session_history_metadata.media_index', + 'session_history_metadata.parent_media_index', 'session_history_media_info.video_decision', + 'session_history_media_info.audio_decision', 'session_history.user', 'session_history.user_id as custom_user_id', '(CASE WHEN users.friendly_name IS NULL THEN users.username ELSE \ @@ -189,10 +202,15 @@ class Users(object): 'platform': platform, 'player': item['player'], 'last_played': item['last_played'], + 'rating_key': item['rating_key'], 'thumb': thumb, 'media_type': item['media_type'], - 'rating_key': item['rating_key'], + 'parent_title': item['parent_title'], + 'year': item['year'], + 'media_index': item['media_index'], + 'parent_media_index': item['parent_media_index'], 'video_decision': item['video_decision'], + 'audio_decision': item['audio_decision'], 'friendly_name': item['friendly_name'] }