Fix for usage of wrong view offset field when serializing to session_history

Also add code to update view offset in sessions table more often
This commit is contained in:
Florian Böhm 2018-09-20 01:13:31 +02:00
parent f1b3a6f7b6
commit af3944734f
2 changed files with 8 additions and 1 deletions

View file

@ -228,6 +228,7 @@ class ActivityHandler(object):
this_state = self.timeline['state']
this_rating_key = str(self.timeline['ratingKey'])
this_key = self.timeline['key']
this_view_offset = self.timeline['viewOffset']
# Get the live tv session uuid
this_live_uuid = this_key.split('/')[-1] if this_key.startswith('/livetv/sessions') else None
@ -241,6 +242,7 @@ class ActivityHandler(object):
last_state = db_session['state']
last_rating_key = str(db_session['rating_key'])
last_live_uuid = db_session['live_uuid']
last_view_offset = db_session['view_offset']
# Make sure the same item is being played
if this_rating_key == last_rating_key or this_live_uuid == last_live_uuid:
@ -251,6 +253,10 @@ class ActivityHandler(object):
if int(time.time()) - db_session['stopped'] > 60:
self.update_db_session()
# Update db session when view offset changes
if this_view_offset != last_view_offset:
self.update_db_session()
# Start our state checks
if this_state != last_state:
if this_state == 'paused':

View file

@ -156,10 +156,11 @@ class ActivityProcessor(object):
# Reload json from raw stream info
if session.get('raw_stream_info'):
raw_stream_info = json.loads(session['raw_stream_info'])
# Don't overwrite id, session_key, stopped
# Don't overwrite id, session_key, stopped, view_offset
raw_stream_info.pop('id', None)
raw_stream_info.pop('session_key', None)
raw_stream_info.pop('stopped', None)
raw_stream_info.pop('view_offset', None)
session.update(raw_stream_info)
session = defaultdict(str, session)