diff --git a/data/interfaces/default/js/tables/history_table.js b/data/interfaces/default/js/tables/history_table.js index 1b3cc10d..3b176385 100644 --- a/data/interfaces/default/js/tables/history_table.js +++ b/data/interfaces/default/js/tables/history_table.js @@ -115,11 +115,11 @@ history_table_options = { "createdCell": function (td, cellData, rowData, row, col) { if (cellData !== '') { var transcode_dec = ''; - if (rowData['video_decision'] === 'transcode' || rowData['audio_decision'] === 'transcode') { + if (rowData['transcode_decision'] === 'transcode') { transcode_dec = ''; - } else if (rowData['video_decision'] === 'copy' || rowData['audio_decision'] === 'copy') { + } else if (rowData['transcode_decision'] === 'copy') { transcode_dec = ''; - } else if (rowData['video_decision'] === 'direct play' || rowData['audio_decision'] === 'direct play') { + } else if (rowData['transcode_decision'] === 'direct play') { transcode_dec = ''; } $(td).html('
'); diff --git a/data/interfaces/default/js/tables/history_table_modal.js b/data/interfaces/default/js/tables/history_table_modal.js index df733cbf..a58ca2f7 100644 --- a/data/interfaces/default/js/tables/history_table_modal.js +++ b/data/interfaces/default/js/tables/history_table_modal.js @@ -79,11 +79,11 @@ history_table_modal_options = { "createdCell": function (td, cellData, rowData, row, col) { if (cellData !== '') { var transcode_dec = ''; - if (rowData['video_decision'] === 'transcode' || rowData['audio_decision'] === 'transcode') { + if (rowData['transcode_decision'] === 'transcode') { transcode_dec = ''; - } else if (rowData['video_decision'] === 'copy' || rowData['audio_decision'] === 'copy') { + } else if (rowData['transcode_decision'] === 'copy') { transcode_dec = ''; - } else if (rowData['video_decision'] === 'direct play' || rowData['audio_decision'] === 'direct play') { + } else if (rowData['transcode_decision'] === 'direct play') { transcode_dec = ''; } $(td).html(''); diff --git a/data/interfaces/default/js/tables/user_ips.js b/data/interfaces/default/js/tables/user_ips.js index fbcaff74..b97a4407 100644 --- a/data/interfaces/default/js/tables/user_ips.js +++ b/data/interfaces/default/js/tables/user_ips.js @@ -64,11 +64,11 @@ user_ip_table_options = { "createdCell": function (td, cellData, rowData, row, col) { if (cellData) { var transcode_dec = ''; - if (rowData['video_decision'] === 'transcode' || rowData['audio_decision'] === 'transcode') { + if (rowData['transcode_decision'] === 'transcode') { transcode_dec = ''; - } else if (rowData['video_decision'] === 'copy' || rowData['audio_decision'] === 'copy') { + } else if (rowData['transcode_decision'] === 'copy') { transcode_dec = ''; - } else if (rowData['video_decision'] === 'direct play' || rowData['audio_decision'] === 'direct play') { + } else if (rowData['transcode_decision'] === 'direct play') { transcode_dec = ''; } $(td).html(''); diff --git a/data/interfaces/default/js/tables/users.js b/data/interfaces/default/js/tables/users.js index b667e803..cc6ea22c 100644 --- a/data/interfaces/default/js/tables/users.js +++ b/data/interfaces/default/js/tables/users.js @@ -120,11 +120,11 @@ users_list_table_options = { "createdCell": function (td, cellData, rowData, row, col) { if (cellData !== null && cellData !== '') { var transcode_dec = ''; - if (rowData['video_decision'] === 'transcode' || rowData['audio_decision'] === 'transcode') { + if (rowData['transcode_decision'] === 'transcode') { transcode_dec = ''; - } else if (rowData['video_decision'] === 'copy' || rowData['audio_decision'] === 'copy') { + } else if (rowData['transcode_decision'] === 'copy') { transcode_dec = ''; - } else if (rowData['video_decision'] === 'direct play' || rowData['audio_decision'] === 'direct play') { + } else if (rowData['transcode_decision'] === 'direct play') { transcode_dec = ''; } $(td).html(''); diff --git a/plexpy/__init__.py b/plexpy/__init__.py index 3443fdbe..2f544920 100644 --- a/plexpy/__init__.py +++ b/plexpy/__init__.py @@ -420,8 +420,8 @@ def dbcheck(): # session_history_media_info table :: This is a table which logs each session's media info c_db.execute( - 'CREATE TABLE IF NOT EXISTS session_history_media_info (id INTEGER PRIMARY KEY, ' - 'rating_key INTEGER, video_decision TEXT, audio_decision TEXT, duration INTEGER DEFAULT 0, width INTEGER, ' + 'CREATE TABLE IF NOT EXISTS session_history_media_info (id INTEGER PRIMARY KEY, rating_key INTEGER, ' + 'video_decision TEXT, audio_decision TEXT, transcode_decision TEXT, duration INTEGER DEFAULT 0, width INTEGER, ' 'height INTEGER, container TEXT, video_codec TEXT, audio_codec TEXT, bitrate INTEGER, video_resolution TEXT, ' 'video_framerate TEXT, aspect_ratio TEXT, audio_channels INTEGER, transcode_protocol TEXT, ' 'transcode_container TEXT, transcode_video_codec TEXT, transcode_audio_codec TEXT, ' @@ -671,6 +671,21 @@ def dbcheck(): 'ALTER TABLE session_history_metadata ADD COLUMN section_id INTEGER' ) + # Upgrade session_history_media_info table from earlier versions + try: + c_db.execute('SELECT transcode_decision FROM session_history_media_info') + except sqlite3.OperationalError: + logger.debug(u"Altering database. Updating database table session_history_media_info.") + c_db.execute( + 'ALTER TABLE session_history_media_info ADD COLUMN transcode_decision TEXT' + ) + c_db.execute( + 'UPDATE session_history_media_info SET transcode_decision = (CASE ' + 'WHEN video_decision = "transcode" OR audio_decision = "transcode" THEN "transcode" ' + 'WHEN video_decision = "copy" OR audio_decision = "copy" THEN "copy" ' + 'WHEN video_decision = "direct play" OR audio_decision = "direct play" THEN "direct play" END)' + ) + # Upgrade users table from earlier versions try: c_db.execute('SELECT do_notify FROM users') diff --git a/plexpy/activity_processor.py b/plexpy/activity_processor.py index 0ea6e532..f14cd432 100644 --- a/plexpy/activity_processor.py +++ b/plexpy/activity_processor.py @@ -218,13 +218,22 @@ class ActivityProcessor(object): # % last_id) # Write the session_history_media_info table + + # Generate a combined transcode decision value + if session['video_decision'] == 'transcode' or session['audio_decision'] == 'transcode': + transcode_decision = 'transcode' + elif session['video_decision'] == 'copy' or session['audio_decision'] == 'copy': + transcode_decision = 'copy' + else: + transcode_decision = 'direct play' + # logger.debug(u"PlexPy ActivityProcessor :: Attempting to write to session_history_media_info table...") query = 'INSERT INTO session_history_media_info (id, rating_key, video_decision, audio_decision, ' \ 'duration, width, height, container, video_codec, audio_codec, bitrate, video_resolution, ' \ 'video_framerate, aspect_ratio, audio_channels, transcode_protocol, transcode_container, ' \ 'transcode_video_codec, transcode_audio_codec, transcode_audio_channels, transcode_width, ' \ - 'transcode_height) VALUES ' \ - '(last_insert_rowid(), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' + 'transcode_height, transcode_decision) VALUES ' \ + '(last_insert_rowid(), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' args = [session['rating_key'], session['video_decision'], session['audio_decision'], session['duration'], session['width'], session['height'], session['container'], @@ -232,7 +241,8 @@ class ActivityProcessor(object): session['video_resolution'], session['video_framerate'], session['aspect_ratio'], session['audio_channels'], session['transcode_protocol'], session['transcode_container'], session['transcode_video_codec'], session['transcode_audio_codec'], - session['transcode_audio_channels'], session['transcode_width'], session['transcode_height']] + session['transcode_audio_channels'], session['transcode_width'], session['transcode_height'], + transcode_decision] # logger.debug(u"PlexPy ActivityProcessor :: Writing session_history_media_info transaction...") self.db.action(query=query, args=args) diff --git a/plexpy/datafactory.py b/plexpy/datafactory.py index 7e54a59c..8b6d151d 100644 --- a/plexpy/datafactory.py +++ b/plexpy/datafactory.py @@ -61,8 +61,7 @@ class DataFactory(object): 'MAX((CASE WHEN (view_offset IS NULL OR view_offset = "") THEN 0.1 ELSE view_offset * 1.0 END) / \ (CASE WHEN (session_history_metadata.duration IS NULL OR session_history_metadata.duration = "") \ THEN 1.0 ELSE session_history_metadata.duration * 1.0 END) * 100) AS percent_complete', - 'session_history_media_info.video_decision', - 'session_history_media_info.audio_decision', + 'session_history_media_info.transcode_decision', 'COUNT(*) AS group_count', 'GROUP_CONCAT(session_history.id) AS group_ids' ] @@ -138,8 +137,7 @@ class DataFactory(object): 'media_index': item['media_index'], 'parent_media_index': item['parent_media_index'], 'thumb': thumb, - 'video_decision': item['video_decision'], - 'audio_decision': item['audio_decision'], + 'transcode_decision': item['transcode_decision'], 'percent_complete': int(round(item['percent_complete'])), 'watched_status': watched_status, 'group_count': item['group_count'], @@ -626,24 +624,21 @@ class DataFactory(object): title = 'Concurrent Transcodes' query = base_query \ - + 'AND (session_history_media_info.video_decision = "transcode" ' \ - 'OR session_history_media_info.audio_decision = "transcode") ' + + 'AND session_history_media_info.transcode_decision = "transcode" ' result = monitor_db.select(query) if result: most_concurrent.append(calc_most_concurrent(title, result)) title = 'Concurrent Direct Streams' query = base_query \ - + 'AND (session_history_media_info.video_decision != "transcode" ' \ - 'AND session_history_media_info.audio_decision = "copy") ' + + 'AND session_history_media_info.transcode_decision = "copy" ' result = monitor_db.select(query) if result: most_concurrent.append(calc_most_concurrent(title, result)) title = 'Concurrent Direct Plays' query = base_query \ - + 'AND (session_history_media_info.video_decision = "direct play" ' \ - 'OR session_history_media_info.audio_decision = "direct play") ' + + 'AND session_history_media_info.transcode_decision = "direct play" ' result = monitor_db.select(query) if result: most_concurrent.append(calc_most_concurrent(title, result)) @@ -828,6 +823,7 @@ class DataFactory(object): 'SUM(CASE WHEN paused_counter IS NULL THEN 0 ELSE paused_counter END) AS total_duration ' \ 'FROM session_history ' \ 'JOIN session_history_metadata ON session_history_metadata.id = session_history.id ' \ + 'JOIN session_history_media_info ON session_history_media_info.id = session_history.id ' \ '%s ' % where result = monitor_db.select(query) except Exception as e: diff --git a/plexpy/graphs.py b/plexpy/graphs.py index e5d93720..d9f9cd55 100644 --- a/plexpy/graphs.py +++ b/plexpy/graphs.py @@ -490,40 +490,39 @@ class Graphs(object): try: if y_axis == 'plays': query = 'SELECT date(session_history.started, "unixepoch", "localtime") AS date_played, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision = "direct play" ' \ - 'OR session_history_media_info.audio_decision = "direct play") THEN 1 ELSE 0 END) AS dp_count, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision != "transcode" ' \ - 'AND session_history_media_info.audio_decision = "copy") THEN 1 ELSE 0 END) AS ds_count, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision = "transcode" ' \ - 'OR session_history_media_info.audio_decision = "transcode") THEN 1 ELSE 0 END) AS tc_count ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "direct play" ' \ + 'THEN 1 ELSE 0 END) AS dp_count, ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "copy" ' \ + 'THEN 1 ELSE 0 END) AS ds_count, ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "transcode" ' \ + 'THEN 1 ELSE 0 END) AS tc_count ' \ 'FROM session_history ' \ 'JOIN session_history_media_info ON session_history.id = session_history_media_info.id ' \ 'WHERE (datetime(session_history.stopped, "unixepoch", "localtime") >= ' \ 'datetime("now", "-%s days", "localtime")) AND ' \ - '(session_history.media_type = "episode" OR session_history.media_type = "movie" OR session_history.media_type = "track") ' \ + '(session_history.media_type = "episode" OR session_history.media_type = "movie" OR ' \ + 'session_history.media_type = "track") ' \ 'GROUP BY date_played ' \ 'ORDER BY started ASC' % time_range result = monitor_db.select(query) else: query = 'SELECT date(session_history.started, "unixepoch", "localtime") AS date_played, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision = "direct play" ' \ - 'OR session_history_media_info.audio_decision = "direct play") ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "direct play" ' \ 'AND session_history.stopped > 0 THEN (session_history.stopped - session_history.started) ' \ ' - (CASE WHEN paused_counter IS NULL THEN 0 ELSE paused_counter END) ELSE 0 END) AS dp_count, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision != "transcode" ' \ - 'AND session_history_media_info.audio_decision = "copy") ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "copy" ' \ 'AND session_history.stopped > 0 THEN (session_history.stopped - session_history.started) ' \ ' - (CASE WHEN paused_counter IS NULL THEN 0 ELSE paused_counter END) ELSE 0 END) AS ds_count, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision = "transcode" ' \ - 'OR session_history_media_info.audio_decision = "transcode") ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "transcode" ' \ 'AND session_history.stopped > 0 THEN (session_history.stopped - session_history.started) ' \ ' - (CASE WHEN paused_counter IS NULL THEN 0 ELSE paused_counter END) ELSE 0 END) AS tc_count ' \ 'FROM session_history ' \ 'JOIN session_history_media_info ON session_history.id = session_history_media_info.id ' \ 'WHERE datetime(session_history.stopped, "unixepoch", "localtime") >= ' \ 'datetime("now", "-%s days", "localtime") AND ' \ - '(session_history.media_type = "episode" OR session_history.media_type = "movie" OR session_history.media_type = "track") ' \ + '(session_history.media_type = "episode" OR session_history.media_type = "movie" OR ' \ + 'session_history.media_type = "track") ' \ 'GROUP BY date_played ' \ 'ORDER BY started ASC' % time_range @@ -583,12 +582,12 @@ class Graphs(object): try: if y_axis == 'plays': query = 'SELECT session_history_media_info.video_resolution AS resolution, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision = "direct play" ' \ - 'OR session_history_media_info.audio_decision = "direct play") THEN 1 ELSE 0 END) AS dp_count, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision != "transcode" ' \ - 'AND session_history_media_info.audio_decision = "copy") THEN 1 ELSE 0 END) AS ds_count, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision = "transcode" ' \ - 'OR session_history_media_info.audio_decision = "transcode") THEN 1 ELSE 0 END) AS tc_count, ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "direct play" ' \ + 'THEN 1 ELSE 0 END) AS dp_count, ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "copy" ' \ + 'THEN 1 ELSE 0 END) AS ds_count, ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "transcode" ' \ + 'THEN 1 ELSE 0 END) AS tc_count, ' \ 'COUNT(session_history.id) AS total_count ' \ 'FROM session_history ' \ 'JOIN session_history_media_info ON session_history.id = session_history_media_info.id ' \ @@ -602,16 +601,13 @@ class Graphs(object): result = monitor_db.select(query) else: query = 'SELECT session_history_media_info.video_resolution AS resolution,' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision = "direct play" ' \ - 'OR session_history_media_info.audio_decision = "direct play") ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "direct play" ' \ 'AND session_history.stopped > 0 THEN (session_history.stopped - session_history.started) ' \ ' - (CASE WHEN paused_counter IS NULL THEN 0 ELSE paused_counter END) ELSE 0 END) AS dp_count, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision != "transcode" ' \ - 'AND session_history_media_info.audio_decision = "copy") ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "copy" ' \ 'AND session_history.stopped > 0 THEN (session_history.stopped - session_history.started) ' \ ' - (CASE WHEN paused_counter IS NULL THEN 0 ELSE paused_counter END) ELSE 0 END) AS ds_count, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision = "transcode" ' \ - 'OR session_history_media_info.audio_decision = "transcode") ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "transcode" ' \ 'AND session_history.stopped > 0 THEN (session_history.stopped - session_history.started) ' \ ' - (CASE WHEN paused_counter IS NULL THEN 0 ELSE paused_counter END) ELSE 0 END) AS tc_count, ' \ 'SUM(CASE WHEN stopped > 0 THEN (stopped - started) ' \ @@ -671,12 +667,12 @@ class Graphs(object): 'WHEN session_history_media_info.transcode_height <= 1440 THEN "QHD" ' \ 'WHEN session_history_media_info.transcode_height <= 2160 THEN "4K" ' \ 'ELSE "unknown" END) ELSE session_history_media_info.video_resolution END) AS resolution, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision = "direct play" ' \ - 'OR session_history_media_info.audio_decision = "direct play") THEN 1 ELSE 0 END) AS dp_count, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision != "transcode" ' \ - 'AND session_history_media_info.audio_decision = "copy") THEN 1 ELSE 0 END) AS ds_count, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision = "transcode" '\ - 'OR session_history_media_info.audio_decision = "transcode") THEN 1 ELSE 0 END) AS tc_count, ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "direct play" ' \ + 'THEN 1 ELSE 0 END) AS dp_count, ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "copy" ' \ + 'THEN 1 ELSE 0 END) AS ds_count, ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "transcode" '\ + 'THEN 1 ELSE 0 END) AS tc_count, ' \ 'COUNT(session_history.id) AS total_count ' \ 'FROM session_history ' \ 'JOIN session_history_media_info ON session_history.id = session_history_media_info.id ' \ @@ -700,16 +696,13 @@ class Graphs(object): 'WHEN session_history_media_info.transcode_height <= 1440 THEN "QHD" ' \ 'WHEN session_history_media_info.transcode_height <= 2160 THEN "4K" ' \ 'ELSE "unknown" END) ELSE session_history_media_info.video_resolution END) AS resolution, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision = "direct play" ' \ - 'OR session_history_media_info.audio_decision = "direct play") ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "direct play" ' \ 'AND session_history.stopped > 0 THEN (session_history.stopped - session_history.started) ' \ ' - (CASE WHEN paused_counter IS NULL THEN 0 ELSE paused_counter END) ELSE 0 END) AS dp_count, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision != "transcode" ' \ - 'AND session_history_media_info.audio_decision = "copy") ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "copy" ' \ 'AND session_history.stopped > 0 THEN (session_history.stopped - session_history.started) ' \ ' - (CASE WHEN paused_counter IS NULL THEN 0 ELSE paused_counter END) ELSE 0 END) AS ds_count, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision = "transcode" ' \ - 'OR session_history_media_info.audio_decision = "transcode") ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "transcode" ' \ 'AND session_history.stopped > 0 THEN (session_history.stopped - session_history.started) ' \ ' - (CASE WHEN paused_counter IS NULL THEN 0 ELSE paused_counter END) ELSE 0 END) AS tc_count, ' \ 'SUM(CASE WHEN stopped > 0 THEN (stopped - started) ' \ @@ -759,12 +752,12 @@ class Graphs(object): try: if y_axis == 'plays': query = 'SELECT session_history.platform AS platform, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision = "direct play" ' \ - 'OR session_history_media_info.audio_decision = "direct play") THEN 1 ELSE 0 END) AS dp_count, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision != "transcode" ' \ - 'AND session_history_media_info.audio_decision = "copy") THEN 1 ELSE 0 END) AS ds_count, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision = "transcode" ' \ - 'OR session_history_media_info.audio_decision = "transcode") THEN 1 ELSE 0 END) AS tc_count, ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "direct play" ' \ + 'THEN 1 ELSE 0 END) AS dp_count, ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "copy" ' \ + 'THEN 1 ELSE 0 END) AS ds_count, ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "transcode" ' \ + 'THEN 1 ELSE 0 END) AS tc_count, ' \ 'COUNT(session_history.id) AS total_count ' \ 'FROM session_history ' \ 'JOIN session_history_media_info ON session_history.id = session_history_media_info.id ' \ @@ -777,16 +770,13 @@ class Graphs(object): result = monitor_db.select(query) else: query = 'SELECT session_history.platform AS platform, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision = "direct play" ' \ - 'OR session_history_media_info.audio_decision = "direct play") ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "direct play" ' \ 'AND session_history.stopped > 0 THEN (session_history.stopped - session_history.started) ' \ ' - (CASE WHEN paused_counter IS NULL THEN 0 ELSE paused_counter END) ELSE 0 END) AS dp_count, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision != "transcode" ' \ - 'AND session_history_media_info.audio_decision = "copy") ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "copy" ' \ 'AND session_history.stopped > 0 THEN (session_history.stopped - session_history.started) ' \ ' - (CASE WHEN paused_counter IS NULL THEN 0 ELSE paused_counter END) ELSE 0 END) AS ds_count, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision = "transcode" ' \ - 'AND session_history_media_info.audio_decision = "transcode") ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "transcode" ' \ 'AND session_history.stopped > 0 THEN (session_history.stopped - session_history.started) ' \ ' - (CASE WHEN paused_counter IS NULL THEN 0 ELSE paused_counter END) ELSE 0 END) AS tc_count, ' \ 'SUM(CASE WHEN session_history.stopped > 0 ' \ @@ -838,12 +828,12 @@ class Graphs(object): if y_axis == 'plays': query = 'SELECT ' \ '(CASE WHEN users.friendly_name IS NULL THEN users.username ELSE users.friendly_name END) AS username, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision = "direct play" ' \ - 'OR session_history_media_info.audio_decision = "direct play") THEN 1 ELSE 0 END) AS dp_count, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision != "transcode" ' \ - 'AND session_history_media_info.audio_decision = "copy") THEN 1 ELSE 0 END) AS ds_count, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision = "transcode" ' \ - 'OR session_history_media_info.audio_decision = "transcode") THEN 1 ELSE 0 END) AS tc_count, ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "direct play" ' \ + 'THEN 1 ELSE 0 END) AS dp_count, ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "copy" ' \ + 'THEN 1 ELSE 0 END) AS ds_count, ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "transcode" ' \ + 'THEN 1 ELSE 0 END) AS tc_count, ' \ 'COUNT(session_history.id) AS total_count ' \ 'FROM session_history ' \ 'JOIN users ON session_history.user_id = users.user_id ' \ @@ -858,16 +848,13 @@ class Graphs(object): else: query = 'SELECT ' \ '(CASE WHEN users.friendly_name IS NULL THEN users.username ELSE users.friendly_name END) AS username, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision = "direct play" ' \ - 'OR session_history_media_info.audio_decision = "direct play") ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "direct play" ' \ 'AND session_history.stopped > 0 THEN (session_history.stopped - session_history.started) ' \ ' - (CASE WHEN paused_counter IS NULL THEN 0 ELSE paused_counter END) ELSE 0 END) AS dp_count, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision != "transcode" ' \ - 'AND session_history_media_info.audio_decision = "copy") ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "copy" ' \ 'AND session_history.stopped > 0 THEN (session_history.stopped - session_history.started) ' \ ' - (CASE WHEN paused_counter IS NULL THEN 0 ELSE paused_counter END) ELSE 0 END) AS ds_count, ' \ - 'SUM(CASE WHEN (session_history_media_info.video_decision = "transcode" ' \ - 'AND session_history_media_info.audio_decision = "transcode") ' \ + 'SUM(CASE WHEN session_history_media_info.transcode_decision = "transcode" ' \ 'AND session_history.stopped > 0 THEN (session_history.stopped - session_history.started) ' \ ' - (CASE WHEN paused_counter IS NULL THEN 0 ELSE paused_counter END) ELSE 0 END) AS tc_count, ' \ 'SUM(CASE WHEN session_history.stopped > 0 ' \ diff --git a/plexpy/libraries.py b/plexpy/libraries.py index 4b6f47f5..3f01d614 100644 --- a/plexpy/libraries.py +++ b/plexpy/libraries.py @@ -148,7 +148,6 @@ class Libraries(object): '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', 'library_sections.keep_history' diff --git a/plexpy/users.py b/plexpy/users.py index e4e7ee3c..44b68090 100644 --- a/plexpy/users.py +++ b/plexpy/users.py @@ -50,8 +50,7 @@ class Users(object): '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_media_info.transcode_decision', 'users.do_notify as do_notify', 'users.keep_history as keep_history' ] @@ -117,8 +116,7 @@ class Users(object): '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'], + 'transcode_decision': item['transcode_decision'], 'do_notify': helpers.checked(item['do_notify']), 'keep_history': helpers.checked(item['keep_history']) } @@ -154,8 +152,7 @@ class Users(object): '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_media_info.transcode_decision', 'session_history.user', 'session_history.user_id as custom_user_id', '(CASE WHEN users.friendly_name IS NULL THEN users.username ELSE \ @@ -213,8 +210,7 @@ class Users(object): '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'], + 'transcode_decision': item['transcode_decision'], 'friendly_name': item['friendly_name'] }