mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-08-21 22:03:18 -07:00
database upgrade fixe s
random fixes
This commit is contained in:
parent
4b15113dd5
commit
3ed05be0f9
2 changed files with 67 additions and 10 deletions
|
@ -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:
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue