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 PYTHON2 = sys.version_info[0] == 2
import plexpy
if PYTHON2: if PYTHON2:
import activity_handler import activity_handler
import activity_pinger import activity_pinger
@ -1440,6 +1441,16 @@ def dbcheck():
"ALTER TABLE sessions ADD COLUMN marker INTEGER DEFAULT 0" "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 # Upgrade session_history table from earlier versions
try: try:
c_db.execute("SELECT reference_id FROM session_history") c_db.execute("SELECT reference_id FROM session_history")
@ -1514,6 +1525,15 @@ def dbcheck():
except sqlite3.OperationalError: except sqlite3.OperationalError:
logger.warn("Unable to capitalize Windows platform values in session_history table.") 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 # Upgrade session_history_metadata table from earlier versions
try: try:
c_db.execute("SELECT full_title FROM session_history_metadata") 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" "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 # Upgrade session_history_media_info table from earlier versions
try: try:
c_db.execute("SELECT transcode_decision FROM session_history_media_info") 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" "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 # Upgrade session_history table from earlier versions
try: try:
c_db.execute("SELECT section_id FROM session_history") 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" "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 # Upgrade users table from earlier versions
try: try:
c_db.execute("SELECT do_notify FROM users") c_db.execute("SELECT do_notify FROM users")
@ -2711,6 +2758,15 @@ def dbcheck():
"ON sessions_continued (user_id, machine_id, media_type)" "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 # Set database version
result = c_db.execute("SELECT value FROM version_info WHERE key = 'version'").fetchone() result = c_db.execute("SELECT value FROM version_info WHERE key = 'version'").fetchone()
if not result: if not result:

View file

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