mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-08 06:00:51 -07:00
Update paused time while still paused
This commit is contained in:
parent
4e3b95950f
commit
ca20eda606
2 changed files with 15 additions and 9 deletions
|
@ -125,8 +125,9 @@ class ActivityHandler(object):
|
||||||
% (str(self.get_session_key()), str(self.get_rating_key())))
|
% (str(self.get_session_key()), str(self.get_rating_key())))
|
||||||
ap.delete_session(session_key=self.get_session_key())
|
ap.delete_session(session_key=self.get_session_key())
|
||||||
|
|
||||||
def on_pause(self):
|
def on_pause(self, still_paused=False):
|
||||||
if self.is_valid_session():
|
if self.is_valid_session():
|
||||||
|
if not still_paused:
|
||||||
logger.debug(u"Tautulli ActivityHandler :: Session %s paused." % str(self.get_session_key()))
|
logger.debug(u"Tautulli ActivityHandler :: Session %s paused." % str(self.get_session_key()))
|
||||||
|
|
||||||
# Set the session last_paused timestamp
|
# Set the session last_paused timestamp
|
||||||
|
@ -142,6 +143,7 @@ class ActivityHandler(object):
|
||||||
# Retrieve the session data from our temp table
|
# Retrieve the session data from our temp table
|
||||||
db_session = ap.get_session_by_key(session_key=self.get_session_key())
|
db_session = ap.get_session_by_key(session_key=self.get_session_key())
|
||||||
|
|
||||||
|
if not still_paused:
|
||||||
plexpy.NOTIFY_QUEUE.put({'stream_data': db_session, 'notify_action': 'on_pause'})
|
plexpy.NOTIFY_QUEUE.put({'stream_data': db_session, 'notify_action': 'on_pause'})
|
||||||
|
|
||||||
def on_resume(self):
|
def on_resume(self):
|
||||||
|
@ -242,6 +244,11 @@ class ActivityHandler(object):
|
||||||
|
|
||||||
elif this_state == 'buffering':
|
elif this_state == 'buffering':
|
||||||
self.on_buffer()
|
self.on_buffer()
|
||||||
|
|
||||||
|
elif this_state == 'paused':
|
||||||
|
# Update the session last_paused timestamp
|
||||||
|
self.on_pause(still_paused=True)
|
||||||
|
|
||||||
# If a client doesn't register stop events (I'm looking at you PHT!) check if the ratingKey has changed
|
# If a client doesn't register stop events (I'm looking at you PHT!) check if the ratingKey has changed
|
||||||
else:
|
else:
|
||||||
# Manually stop and start
|
# Manually stop and start
|
||||||
|
|
|
@ -446,7 +446,7 @@ class ActivityProcessor(object):
|
||||||
if state:
|
if state:
|
||||||
values['state'] = state
|
values['state'] = state
|
||||||
|
|
||||||
for k,v in kwargs.iteritems():
|
for k, v in kwargs.iteritems():
|
||||||
values[k] = v
|
values[k] = v
|
||||||
|
|
||||||
keys = {'session_key': session_key}
|
keys = {'session_key': session_key}
|
||||||
|
@ -460,7 +460,7 @@ class ActivityProcessor(object):
|
||||||
if str(session_key).isdigit():
|
if str(session_key).isdigit():
|
||||||
self.db.action('DELETE FROM sessions WHERE session_key = ?', [session_key])
|
self.db.action('DELETE FROM sessions WHERE session_key = ?', [session_key])
|
||||||
|
|
||||||
def set_session_last_paused(self, session_key=None, timestamp=None):
|
def set_session_last_paused(self, session_key=None, timestamp=None ):
|
||||||
if str(session_key).isdigit():
|
if str(session_key).isdigit():
|
||||||
result = self.db.select('SELECT last_paused, paused_counter '
|
result = self.db.select('SELECT last_paused, paused_counter '
|
||||||
'FROM sessions '
|
'FROM sessions '
|
||||||
|
@ -469,15 +469,14 @@ class ActivityProcessor(object):
|
||||||
paused_counter = None
|
paused_counter = None
|
||||||
for session in result:
|
for session in result:
|
||||||
if session['last_paused']:
|
if session['last_paused']:
|
||||||
paused_offset = int(time.time()) - int(session['last_paused'])
|
paused_offset = timestamp - int(session['last_paused'])
|
||||||
if session['paused_counter']:
|
if session['paused_counter']:
|
||||||
paused_counter = int(session['paused_counter']) + int(paused_offset)
|
paused_counter = int(session['paused_counter']) + int(paused_offset)
|
||||||
else:
|
else:
|
||||||
paused_counter = int(paused_offset)
|
paused_counter = int(paused_offset)
|
||||||
|
|
||||||
values = {'state': 'playing',
|
values = {'last_paused': timestamp}
|
||||||
'last_paused': timestamp
|
|
||||||
}
|
|
||||||
if paused_counter:
|
if paused_counter:
|
||||||
values['paused_counter'] = paused_counter
|
values['paused_counter'] = paused_counter
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue