diff --git a/data/interfaces/default/css/plexpy.css b/data/interfaces/default/css/plexpy.css
index fe5e3c96..c14fc9fa 100644
--- a/data/interfaces/default/css/plexpy.css
+++ b/data/interfaces/default/css/plexpy.css
@@ -3722,7 +3722,11 @@ a:hover .overlay-refresh-image:hover {
.no-image {
background-image: none !important;
}
-
+#info-modal .stream-info-current {
+ color: #aaa;
+ text-align: center;
+ padding-bottom: 10px;
+}
#info-modal .stream-info-item {
display: flex;
flex-direction: row;
diff --git a/data/interfaces/default/stream_data.html b/data/interfaces/default/stream_data.html
index 8c37fe10..5ec03824 100644
--- a/data/interfaces/default/stream_data.html
+++ b/data/interfaces/default/stream_data.html
@@ -54,6 +54,11 @@ DOCUMENTATION :: END
+ % if data['current_session']:
+
+ Current session. Updated stream details below may be delayed.
+
+ % endif
diff --git a/plexpy/activity_handler.py b/plexpy/activity_handler.py
index 6c6c1fc0..484e2048 100644
--- a/plexpy/activity_handler.py
+++ b/plexpy/activity_handler.py
@@ -33,6 +33,7 @@ ACTIVITY_SCHED = BackgroundScheduler()
RECENTLY_ADDED_QUEUE = {}
+
class ActivityHandler(object):
def __init__(self, timeline):
@@ -229,9 +230,11 @@ class ActivityHandler(object):
# Update the session state and viewOffset
if this_state == 'playing':
# Update the session in our temp session table
- session = self.get_live_session()
- if session:
- self.update_db_session(session=session)
+ # if the last set temporary stopped time exceeds 15 seconds
+ if int(time.time()) - db_session['stopped'] > 60:
+ session = self.get_live_session()
+ if session:
+ self.update_db_session(session=session)
# Start our state checks
if this_state != last_state:
diff --git a/plexpy/datafactory.py b/plexpy/datafactory.py
index 99b49269..a4abbda9 100644
--- a/plexpy/datafactory.py
+++ b/plexpy/datafactory.py
@@ -951,7 +951,8 @@ class DataFactory(object):
'transcode_hw_encoding': item['transcode_hw_encoding'],
'media_type': item['media_type'],
'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()}
diff --git a/plexpy/pmsconnect.py b/plexpy/pmsconnect.py
index 390f918f..2733c19c 100644
--- a/plexpy/pmsconnect.py
+++ b/plexpy/pmsconnect.py
@@ -542,7 +542,7 @@ class PmsConnect(object):
if metadata:
_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:
return metadata
@@ -1155,9 +1155,9 @@ class PmsConnect(object):
metadata['media_info'] = medias
if metadata:
- metadata['_cache_time'] = int(time.time())
-
if cache_key:
+ metadata['_cache_time'] = int(time.time())
+
out_file_path = os.path.join(plexpy.CONFIG.CACHE_DIR, 'metadata-sessionKey-%s.json' % cache_key)
try:
with open(out_file_path, 'w') as outFile: