database upgrade fixe s

random fixes
This commit is contained in:
tyler breese 2023-11-10 01:28:43 -05:00
commit 3ed05be0f9
2 changed files with 67 additions and 10 deletions

View file

@ -41,6 +41,7 @@ import pytz
PYTHON2 = sys.version_info[0] == 2
import plexpy
if PYTHON2:
import activity_handler
import activity_pinger
@ -1440,6 +1441,16 @@ def dbcheck():
"ALTER TABLE sessions ADD COLUMN marker INTEGER DEFAULT 0"
)
# Upgrade sessions table from earlier versions
try:
c_db.execute("SELECT server_id FROM sessions")
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table sessions.")
c_db.execute(
"ALTER TABLE sessions ADD COLUMN server_id TEXT DEFAULT '" + plexpy.CONFIG.PMS_IDENTIFIER + "'"
)
# Upgrade session_history table from earlier versions
try:
c_db.execute("SELECT reference_id FROM session_history")
@ -1514,6 +1525,15 @@ def dbcheck():
except sqlite3.OperationalError:
logger.warn("Unable to capitalize Windows platform values in session_history table.")
# Upgrade session_history table from earlier versions
try:
c_db.execute("SELECT server_id FROM session_history")
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table session_history.")
c_db.execute(
"ALTER TABLE session_history ADD COLUMN server_id TEXT DEFAULT '" + plexpy.CONFIG.PMS_IDENTIFIER + "'"
)
# Upgrade session_history_metadata table from earlier versions
try:
c_db.execute("SELECT full_title FROM session_history_metadata")
@ -1580,6 +1600,15 @@ def dbcheck():
"ALTER TABLE session_history_metadata ADD COLUMN marker_credits_final INTEGER DEFAULT NULL"
)
# Upgrade session_history_metadata table from earlier versions
try:
c_db.execute("SELECT server_id FROM session_history_metadata")
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table session_history_metadata.")
c_db.execute(
"ALTER TABLE session_history_metadata ADD COLUMN server_id TEXT DEFAULT '" + plexpy.CONFIG.PMS_IDENTIFIER + "'"
)
# Upgrade session_history_media_info table from earlier versions
try:
c_db.execute("SELECT transcode_decision FROM session_history_media_info")
@ -1870,6 +1899,15 @@ def dbcheck():
"ALTER TABLE session_history_media_info ADD COLUMN subtitle_forced INTEGER"
)
# Upgrade session_history_media_info table from earlier versions
try:
c_db.execute("SELECT server_id FROM session_history_media_info")
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table session_history_media_info.")
c_db.execute(
"ALTER TABLE session_history_media_info ADD COLUMN server_id TEXT DEFAULT '" + plexpy.CONFIG.PMS_IDENTIFIER + "'"
)
# Upgrade session_history table from earlier versions
try:
c_db.execute("SELECT section_id FROM session_history")
@ -1920,6 +1958,15 @@ def dbcheck():
"ALTER TABLE session_history_metadata_temp RENAME TO session_history_metadata"
)
# Upgrade session_history table from earlier versions
try:
c_db.execute("SELECT server_id FROM session_history")
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table session_history.")
c_db.execute(
"ALTER TABLE session_history ADD COLUMN server_id TEXT DEFAULT '" + plexpy.CONFIG.PMS_IDENTIFIER + "'"
)
# Upgrade users table from earlier versions
try:
c_db.execute("SELECT do_notify FROM users")
@ -2711,6 +2758,15 @@ def dbcheck():
"ON sessions_continued (user_id, machine_id, media_type)"
)
# Upgrade sessions_continued table from earlier versions
try:
c_db.execute("SELECT server_id FROM sessions_continued")
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table sessions_continued.")
c_db.execute(
"ALTER TABLE sessions_continued ADD COLUMN server_id TEXT DEFAULT '" + plexpy.CONFIG.PMS_IDENTIFIER + "'"
)
# Set database version
result = c_db.execute("SELECT value FROM version_info WHERE key = 'version'").fetchone()
if not result:

View file

@ -285,8 +285,9 @@ class ActivityHandler(object):
watched_notifiers = notification_handler.get_notify_state_enabled(
session=self.db_session, notify_action='on_watched', notified=False)
for d in watched_notifiers:
self.put_notification('on_watched', notifier_id=d['notifier_id'])
if watched_notifiers is not None:
for d in watched_notifiers:
self.put_notification('on_watched', notifier_id=d['notifier_id'])
# This function receives events from our websocket connection
def process(self):
@ -495,7 +496,7 @@ class TimelineHandler(object):
# Schedule a callback to clear the recently added queue
schedule_callback('rating_key-{}'.format(self.grandparent_rating_key),
func=clear_recently_added_queue,
args=[self.grandparent_rating_key, self.title],
args=[self.grandparent_rating_key, self.title, self.server_id],
seconds=plexpy.CONFIG.NOTIFY_RECENTLY_ADDED_DELAY)
elif self.media_type in ('season', 'album'):
@ -510,7 +511,7 @@ class TimelineHandler(object):
# Schedule a callback to clear the recently added queue
schedule_callback('rating_key-{}'.format(self.parent_rating_key),
func=clear_recently_added_queue,
args=[self.parent_rating_key, self.title],
args=[self.parent_rating_key, self.title, self.server_id],
seconds=plexpy.CONFIG.NOTIFY_RECENTLY_ADDED_DELAY)
elif self.media_type in ('movie', 'show', 'artist'):
@ -524,7 +525,7 @@ class TimelineHandler(object):
# Schedule a callback to clear the recently added queue
schedule_callback('rating_key-{}'.format(self.rating_key),
func=clear_recently_added_queue,
args=[self.rating_key, self.title],
args=[self.rating_key, self.title, self.server_id],
seconds=plexpy.CONFIG.NOTIFY_RECENTLY_ADDED_DELAY)
# A movie, show, or artist is done processing
@ -676,14 +677,14 @@ def force_stop_stream(session_key, title, user):
delete_metadata_cache(session_key)
def clear_recently_added_queue(rating_key, title):
def clear_recently_added_queue(rating_key, title, server_id):
logger.debug("Tautulli TimelineHandler :: Starting callback for library item '%s' (%s) after delay.",
title, str(rating_key))
child_keys = RECENTLY_ADDED_QUEUE[rating_key]
if plexpy.CONFIG.NOTIFY_GROUP_RECENTLY_ADDED_GRANDPARENT and len(child_keys) > 1:
on_created(rating_key, child_keys=child_keys)
on_created(rating_key, server_id, child_keys=child_keys)
elif child_keys:
for child_key in child_keys:
@ -694,13 +695,13 @@ def clear_recently_added_queue(rating_key, title):
elif grandchild_keys:
for grandchild_key in grandchild_keys:
on_created(grandchild_key)
on_created(grandchild_key, server_id)
else:
on_created(child_key)
on_created(child_key, server_id)
else:
on_created(rating_key)
on_created(rating_key, server_id)
# Remove all keys
del_keys(rating_key)