diff --git a/data/interfaces/default/settings.html b/data/interfaces/default/settings.html
index 87c0954a..281dc49d 100644
--- a/data/interfaces/default/settings.html
+++ b/data/interfaces/default/settings.html
@@ -976,7 +976,7 @@
The number of seconds between stopping and starting a new stream to be considered as a continued session. Set to 0 to consider all streams as new sessions.
- Note: The threshold is only used for the continued session notification parameter.
+ Note: The threshold is only used by the "Initial Stream" notification parameter to determine if a stream is the first stream of a continuous streaming session.
diff --git a/plexpy/__init__.py b/plexpy/__init__.py
index fa802da8..86e6a3b0 100644
--- a/plexpy/__init__.py
+++ b/plexpy/__init__.py
@@ -610,7 +610,7 @@ def dbcheck():
'live INTEGER, live_uuid TEXT, channel_call_sign TEXT, channel_identifier TEXT, channel_thumb TEXT, '
'secure INTEGER, relayed INTEGER, '
'buffer_count INTEGER DEFAULT 0, buffer_last_triggered INTEGER, last_paused INTEGER, watched INTEGER DEFAULT 0, '
- 'continued_session INTEGER DEFAULT 0, write_attempts INTEGER DEFAULT 0, raw_stream_info TEXT)'
+ 'initial_stream INTEGER DEFAULT 1, write_attempts INTEGER DEFAULT 0, raw_stream_info TEXT)'
)
# sessions_continued table :: This is a temp table that keeps track of continued streaming sessions
@@ -1284,11 +1284,11 @@ def dbcheck():
# Upgrade sessions table from earlier versions
try:
- c_db.execute('SELECT continued_session FROM sessions')
+ c_db.execute('SELECT initial_stream FROM sessions')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table sessions.")
c_db.execute(
- 'ALTER TABLE sessions ADD COLUMN continued_session INTEGER DEFAULT 0'
+ 'ALTER TABLE sessions ADD COLUMN initial_stream INTEGER DEFAULT 1'
)
# Upgrade session_history table from earlier versions
diff --git a/plexpy/activity_processor.py b/plexpy/activity_processor.py
index bfd860ed..c30bc48b 100644
--- a/plexpy/activity_processor.py
+++ b/plexpy/activity_processor.py
@@ -144,11 +144,11 @@ class ActivityProcessor(object):
if result == 'insert':
# If it's our first write then time stamp it.
started = int(time.time())
- continued_session = self.is_continued_session(user_id=values['user_id'],
- machine_id=values['machine_id'],
- media_type=values['media_type'],
- started=started)
- timestamp = {'started': started, 'continued_session': continued_session}
+ initial_stream = self.is_initial_stream(user_id=values['user_id'],
+ machine_id=values['machine_id'],
+ media_type=values['media_type'],
+ started=started)
+ timestamp = {'started': started, 'initial_stream': initial_stream}
self.db.upsert('sessions', timestamp, keys)
# Check if any notification agents have notifications enabled
@@ -647,10 +647,10 @@ class ActivityProcessor(object):
values = {'stopped': stopped}
self.db.upsert(table_name='sessions_continued', key_dict=keys, value_dict=values)
- def is_continued_session(self, user_id=None, machine_id=None, media_type=None, started=None):
+ def is_initial_stream(self, user_id=None, machine_id=None, media_type=None, started=None):
last_session = self.db.select_single('SELECT stopped '
'FROM sessions_continued '
'WHERE user_id = ? AND machine_id = ? AND media_type = ? '
'ORDER BY stopped DESC',
[user_id, machine_id, media_type])
- return int(started - last_session.get('stopped', 0) < plexpy.CONFIG.NOTIFY_CONTINUED_SESSION_THRESHOLD)
+ return int(started - last_session.get('stopped', 0) > plexpy.CONFIG.NOTIFY_CONTINUED_SESSION_THRESHOLD)
diff --git a/plexpy/common.py b/plexpy/common.py
index bd3a1185..8b4ca333 100644
--- a/plexpy/common.py
+++ b/plexpy/common.py
@@ -359,6 +359,7 @@ NOTIFICATION_PARAMETERS = [
{'name': 'Platform', 'type': 'str', 'value': 'platform', 'description': 'The type of client platform being used for playback.'},
{'name': 'Product', 'type': 'str', 'value': 'product', 'description': 'The type of client product being used for playback.'},
{'name': 'Player', 'type': 'str', 'value': 'player', 'description': 'The name of the player being used for playback.'},
+ {'name': 'Initial Stream', 'type': 'int', 'value': 'initial_stream', 'description': 'If the stream is the initial stream of a continuous streaming session.', 'example': '0 or 1'},
{'name': 'IP Address', 'type': 'str', 'value': 'ip_address', 'description': 'The IP address of the device being used for playback.'},
{'name': 'Stream Duration', 'type': 'int', 'value': 'stream_duration', 'description': 'The duration (in minutes) for the stream.'},
{'name': 'Stream Time', 'type': 'str', 'value': 'stream_time', 'description': 'The duration (in time format) of the stream.'},
@@ -367,7 +368,6 @@ NOTIFICATION_PARAMETERS = [
{'name': 'Progress Duration', 'type': 'int', 'value': 'progress_duration', 'description': 'The last reported offset (in minutes) of the stream.'},
{'name': 'Progress Time', 'type': 'str', 'value': 'progress_time', 'description': 'The last reported offset (in time format) of the stream.'},
{'name': 'Progress Percent', 'type': 'int', 'value': 'progress_percent', 'description': 'The last reported progress percent of the stream.'},
- {'name': 'Continued Session', 'type': 'int', 'value': 'continued_session', 'description': 'If the stream is continued from the previous streaming session.', 'example': '0 or 1'},
{'name': 'Transcode Decision', 'type': 'str', 'value': 'transcode_decision', 'description': 'The transcode decisions of the stream.'},
{'name': 'Video Decision', 'type': 'str', 'value': 'video_decision', 'description': 'The video transcode decisions of the stream.'},
{'name': 'Audio Decision', 'type': 'str', 'value': 'audio_decision', 'description': 'The audio transcode decisions of the stream.'},
diff --git a/plexpy/notification_handler.py b/plexpy/notification_handler.py
index 8b8b83a3..b66072f7 100644
--- a/plexpy/notification_handler.py
+++ b/plexpy/notification_handler.py
@@ -843,7 +843,7 @@ def build_media_notify_params(notify_action=None, session=None, timeline=None, m
'progress_duration': view_offset,
'progress_time': arrow.get(view_offset * 60).format(duration_format),
'progress_percent': helpers.get_percent(view_offset, duration),
- 'continued_session': notify_params['continued_session'],
+ 'initial_stream': notify_params['initial_stream'],
'transcode_decision': transcode_decision,
'video_decision': notify_params['video_decision'],
'audio_decision': notify_params['audio_decision'],