Only update the database sessions every 60 seconds while playing

This commit is contained in:
JonnyWong16 2018-01-07 17:10:33 -08:00
parent 9b4536f132
commit 157af84226
5 changed files with 21 additions and 8 deletions

View file

@ -3722,7 +3722,11 @@ a:hover .overlay-refresh-image:hover {
.no-image { .no-image {
background-image: none !important; background-image: none !important;
} }
#info-modal .stream-info-current {
color: #aaa;
text-align: center;
padding-bottom: 10px;
}
#info-modal .stream-info-item { #info-modal .stream-info-item {
display: flex; display: flex;
flex-direction: row; flex-direction: row;

View file

@ -54,6 +54,11 @@ DOCUMENTATION :: END
</h4> </h4>
</div> </div>
<div class="modal-body"> <div class="modal-body">
% if data['current_session']:
<div class="col-sm-12 text-muted stream-info-current">
<i class="fa fa-exclamation-circle"></i> Current session. Updated stream details below may be delayed.
</div>
% endif
<table class="stream-info" style="margin-top: 0;"> <table class="stream-info" style="margin-top: 0;">
<thead> <thead>
<tr> <tr>

View file

@ -33,6 +33,7 @@ ACTIVITY_SCHED = BackgroundScheduler()
RECENTLY_ADDED_QUEUE = {} RECENTLY_ADDED_QUEUE = {}
class ActivityHandler(object): class ActivityHandler(object):
def __init__(self, timeline): def __init__(self, timeline):
@ -229,6 +230,8 @@ class ActivityHandler(object):
# Update the session state and viewOffset # Update the session state and viewOffset
if this_state == 'playing': if this_state == 'playing':
# Update the session in our temp session table # Update the session in our temp session table
# if the last set temporary stopped time exceeds 15 seconds
if int(time.time()) - db_session['stopped'] > 60:
session = self.get_live_session() session = self.get_live_session()
if session: if session:
self.update_db_session(session=session) self.update_db_session(session=session)

View file

@ -951,7 +951,8 @@ class DataFactory(object):
'transcode_hw_encoding': item['transcode_hw_encoding'], 'transcode_hw_encoding': item['transcode_hw_encoding'],
'media_type': item['media_type'], 'media_type': item['media_type'],
'title': item['title'], 'title': item['title'],
'grandparent_title': item['grandparent_title'] 'grandparent_title': item['grandparent_title'],
'current_session': 1 if session_key else 0
} }
stream_output = {k: v or '' for k, v in stream_output.iteritems()} stream_output = {k: v or '' for k, v in stream_output.iteritems()}

View file

@ -542,7 +542,7 @@ class PmsConnect(object):
if metadata: if metadata:
_cache_time = metadata.pop('_cache_time', 0) _cache_time = metadata.pop('_cache_time', 0)
# Return cached metadata if less than 30 minutes ago # Return cached metadata if less than METADATA_CACHE_SECONDS ago
if int(time.time()) - _cache_time <= plexpy.CONFIG.METADATA_CACHE_SECONDS: if int(time.time()) - _cache_time <= plexpy.CONFIG.METADATA_CACHE_SECONDS:
return metadata return metadata
@ -1155,9 +1155,9 @@ class PmsConnect(object):
metadata['media_info'] = medias metadata['media_info'] = medias
if metadata: if metadata:
if cache_key:
metadata['_cache_time'] = int(time.time()) metadata['_cache_time'] = int(time.time())
if cache_key:
out_file_path = os.path.join(plexpy.CONFIG.CACHE_DIR, 'metadata-sessionKey-%s.json' % cache_key) out_file_path = os.path.join(plexpy.CONFIG.CACHE_DIR, 'metadata-sessionKey-%s.json' % cache_key)
try: try:
with open(out_file_path, 'w') as outFile: with open(out_file_path, 'w') as outFile: