diff --git a/data/interfaces/default/js/tables/history_table.js b/data/interfaces/default/js/tables/history_table.js index d6ab4d6c..e188d1b2 100644 --- a/data/interfaces/default/js/tables/history_table.js +++ b/data/interfaces/default/js/tables/history_table.js @@ -203,7 +203,7 @@ history_table_options = { "targets": [9], "data":"stopped", "createdCell": function (td, cellData, rowData, row, col) { - if (cellData === null) { + if (cellData === null || rowData['state'] != null) { $(td).html('n/a'); } else { $(td).html(moment(cellData,"X").format(time_format)); diff --git a/plexpy/activity_handler.py b/plexpy/activity_handler.py index 306b856b..58a22289 100644 --- a/plexpy/activity_handler.py +++ b/plexpy/activity_handler.py @@ -130,7 +130,8 @@ class ActivityHandler(object): # Update the session state and viewOffset ap.set_session_state(session_key=self.get_session_key(), state=self.timeline['state'], - view_offset=self.timeline['viewOffset']) + view_offset=self.timeline['viewOffset'], + stopped=int(time.time())) # Retrieve the session data from our temp table db_session = ap.get_session_by_key(session_key=self.get_session_key()) @@ -148,7 +149,8 @@ class ActivityHandler(object): # Update the session state and viewOffset ap.set_session_state(session_key=self.get_session_key(), state=self.timeline['state'], - view_offset=self.timeline['viewOffset']) + view_offset=self.timeline['viewOffset'], + stopped=int(time.time())) # Retrieve the session data from our temp table db_session = ap.get_session_by_key(session_key=self.get_session_key()) @@ -204,7 +206,8 @@ class ActivityHandler(object): if this_state == 'playing': ap.set_session_state(session_key=self.get_session_key(), state=this_state, - view_offset=self.timeline['viewOffset']) + view_offset=self.timeline['viewOffset'], + stopped=int(time.time())) # Start our state checks if this_state != last_state: if this_state == 'paused': diff --git a/plexpy/activity_pinger.py b/plexpy/activity_pinger.py index 629d9a9b..ffb27fcc 100644 --- a/plexpy/activity_pinger.py +++ b/plexpy/activity_pinger.py @@ -151,9 +151,9 @@ def check_active_sessions(ws_request=False): progress_percent = helpers.get_percent(stream['view_offset'], stream['duration']) notify_states = notification_handler.get_notify_state(session=stream) - if (session['media_type'] == 'movie' and progress_percent >= plexpy.CONFIG.MOVIE_WATCHED_PERCENT or - session['media_type'] == 'episode' and progress_percent >= plexpy.CONFIG.TV_WATCHED_PERCENT or - session['media_type'] == 'track' and progress_percent >= plexpy.CONFIG.MUSIC_WATCHED_PERCENT) \ + if (stream['media_type'] == 'movie' and progress_percent >= plexpy.CONFIG.MOVIE_WATCHED_PERCENT or + stream['media_type'] == 'episode' and progress_percent >= plexpy.CONFIG.TV_WATCHED_PERCENT or + stream['media_type'] == 'track' and progress_percent >= plexpy.CONFIG.MUSIC_WATCHED_PERCENT) \ and not any(d['notify_action'] == 'on_watched' for d in notify_states): plexpy.NOTIFY_QUEUE.put({'stream_data': stream, 'notify_action': 'on_watched'}) diff --git a/plexpy/activity_processor.py b/plexpy/activity_processor.py index 4b1020e9..2736805c 100644 --- a/plexpy/activity_processor.py +++ b/plexpy/activity_processor.py @@ -83,7 +83,7 @@ class ActivityProcessor(object): 'transcode_audio_channels': session.get('transcode_audio_channels', ''), 'transcode_width': session.get('stream_video_width', ''), 'transcode_height': session.get('stream_video_height', ''), - 'stopped': None + 'stopped': int(time.time()) } # Add ip_address back into values