mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-08-22 06:13:25 -07:00
Add library_id and library_title to database
* Also clean up code
This commit is contained in:
parent
2c354ad783
commit
b75cdc5bd1
2 changed files with 130 additions and 81 deletions
|
@ -386,12 +386,11 @@ def dbcheck():
|
||||||
c_db.execute(
|
c_db.execute(
|
||||||
'CREATE TABLE IF NOT EXISTS session_history_metadata (id INTEGER PRIMARY KEY, '
|
'CREATE TABLE IF NOT EXISTS session_history_metadata (id INTEGER PRIMARY KEY, '
|
||||||
'rating_key INTEGER, parent_rating_key INTEGER, grandparent_rating_key INTEGER, '
|
'rating_key INTEGER, parent_rating_key INTEGER, grandparent_rating_key INTEGER, '
|
||||||
'title TEXT, parent_title TEXT, grandparent_title TEXT, full_title TEXT, media_index INTEGER, '
|
'title TEXT, parent_title TEXT, grandparent_title TEXT, library_title TEXT, full_title TEXT, media_index INTEGER, '
|
||||||
'parent_media_index INTEGER, thumb TEXT, parent_thumb TEXT, grandparent_thumb TEXT, art TEXT, media_type TEXT, '
|
'parent_media_index INTEGER, library_id INTEGER, thumb TEXT, parent_thumb TEXT, grandparent_thumb TEXT, art TEXT, '
|
||||||
'year INTEGER, originally_available_at TEXT, added_at INTEGER, updated_at INTEGER, last_viewed_at INTEGER, '
|
'media_type TEXT, year INTEGER, originally_available_at TEXT, added_at INTEGER, updated_at INTEGER, '
|
||||||
'content_rating TEXT, summary TEXT, tagline TEXT, rating TEXT, duration INTEGER DEFAULT 0, guid TEXT, '
|
'last_viewed_at INTEGER, content_rating TEXT, summary TEXT, tagline TEXT, rating TEXT, duration INTEGER DEFAULT 0, '
|
||||||
'directors TEXT, writers TEXT, actors TEXT, genres TEXT, studio TEXT)'
|
'guid TEXT, directors TEXT, writers TEXT, actors TEXT, genres TEXT, studio TEXT)'
|
||||||
''
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# users table :: This table keeps record of the friends list
|
# users table :: This table keeps record of the friends list
|
||||||
|
@ -403,6 +402,14 @@ def dbcheck():
|
||||||
'keep_history INTEGER DEFAULT 1, custom_avatar_url TEXT)'
|
'keep_history INTEGER DEFAULT 1, custom_avatar_url TEXT)'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# notify_log table :: This is a table which logs notifications sent
|
||||||
|
c_db.execute(
|
||||||
|
'CREATE TABLE IF NOT EXISTS notify_log (id INTEGER PRIMARY KEY AUTOINCREMENT, '
|
||||||
|
'session_key INTEGER, rating_key INTEGER, user_id INTEGER, user TEXT, '
|
||||||
|
'agent_id INTEGER, agent_name TEXT, on_play INTEGER, on_stop INTEGER, on_watched INTEGER, '
|
||||||
|
'on_pause INTEGER, on_resume INTEGER, on_buffer INTEGER)'
|
||||||
|
)
|
||||||
|
|
||||||
# Upgrade sessions table from earlier versions
|
# Upgrade sessions table from earlier versions
|
||||||
try:
|
try:
|
||||||
c_db.execute('SELECT started from sessions')
|
c_db.execute('SELECT started from sessions')
|
||||||
|
@ -529,65 +536,6 @@ def dbcheck():
|
||||||
'ALTER TABLE sessions ADD COLUMN transcode_height INTEGER'
|
'ALTER TABLE sessions ADD COLUMN transcode_height INTEGER'
|
||||||
)
|
)
|
||||||
|
|
||||||
# Upgrade session_history_metadata table from earlier versions
|
|
||||||
try:
|
|
||||||
c_db.execute('SELECT full_title 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 full_title TEXT'
|
|
||||||
)
|
|
||||||
|
|
||||||
# Upgrade session_history_metadata table from earlier versions
|
|
||||||
try:
|
|
||||||
c_db.execute('SELECT tagline 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 tagline TEXT'
|
|
||||||
)
|
|
||||||
|
|
||||||
# notify_log table :: This is a table which logs notifications sent
|
|
||||||
c_db.execute(
|
|
||||||
'CREATE TABLE IF NOT EXISTS notify_log (id INTEGER PRIMARY KEY AUTOINCREMENT, '
|
|
||||||
'session_key INTEGER, rating_key INTEGER, user_id INTEGER, user TEXT, '
|
|
||||||
'agent_id INTEGER, agent_name TEXT, on_play INTEGER, on_stop INTEGER, on_watched INTEGER, '
|
|
||||||
'on_pause INTEGER, on_resume INTEGER, on_buffer INTEGER)'
|
|
||||||
)
|
|
||||||
|
|
||||||
# Upgrade users table from earlier versions
|
|
||||||
try:
|
|
||||||
c_db.execute('SELECT do_notify from users')
|
|
||||||
except sqlite3.OperationalError:
|
|
||||||
logger.debug(u"Altering database. Updating database table users.")
|
|
||||||
c_db.execute(
|
|
||||||
'ALTER TABLE users ADD COLUMN do_notify INTEGER DEFAULT 1'
|
|
||||||
)
|
|
||||||
|
|
||||||
# Upgrade users table from earlier versions
|
|
||||||
try:
|
|
||||||
c_db.execute('SELECT keep_history from users')
|
|
||||||
except sqlite3.OperationalError:
|
|
||||||
logger.debug(u"Altering database. Updating database table users.")
|
|
||||||
c_db.execute(
|
|
||||||
'ALTER TABLE users ADD COLUMN keep_history INTEGER DEFAULT 1'
|
|
||||||
)
|
|
||||||
|
|
||||||
# Upgrade notify_log table from earlier versions
|
|
||||||
try:
|
|
||||||
c_db.execute('SELECT on_pause from notify_log')
|
|
||||||
except sqlite3.OperationalError:
|
|
||||||
logger.debug(u"Altering database. Updating database table notify_log.")
|
|
||||||
c_db.execute(
|
|
||||||
'ALTER TABLE notify_log ADD COLUMN on_pause INTEGER'
|
|
||||||
)
|
|
||||||
c_db.execute(
|
|
||||||
'ALTER TABLE notify_log ADD COLUMN on_resume INTEGER'
|
|
||||||
)
|
|
||||||
c_db.execute(
|
|
||||||
'ALTER TABLE notify_log ADD COLUMN on_buffer INTEGER'
|
|
||||||
)
|
|
||||||
|
|
||||||
# Upgrade sessions table from earlier versions
|
# Upgrade sessions table from earlier versions
|
||||||
try:
|
try:
|
||||||
c_db.execute('SELECT buffer_count from sessions')
|
c_db.execute('SELECT buffer_count from sessions')
|
||||||
|
@ -600,15 +548,6 @@ def dbcheck():
|
||||||
'ALTER TABLE sessions ADD COLUMN buffer_last_triggered INTEGER'
|
'ALTER TABLE sessions ADD COLUMN buffer_last_triggered INTEGER'
|
||||||
)
|
)
|
||||||
|
|
||||||
# Upgrade users table from earlier versions
|
|
||||||
try:
|
|
||||||
c_db.execute('SELECT custom_avatar_url from users')
|
|
||||||
except sqlite3.OperationalError:
|
|
||||||
logger.debug(u"Altering database. Updating database table users.")
|
|
||||||
c_db.execute(
|
|
||||||
'ALTER TABLE users ADD COLUMN custom_avatar_url TEXT'
|
|
||||||
)
|
|
||||||
|
|
||||||
# Upgrade sessions table from earlier versions
|
# Upgrade sessions table from earlier versions
|
||||||
try:
|
try:
|
||||||
c_db.execute('SELECT last_paused from sessions')
|
c_db.execute('SELECT last_paused from sessions')
|
||||||
|
@ -618,12 +557,6 @@ def dbcheck():
|
||||||
'ALTER TABLE sessions ADD COLUMN last_paused INTEGER'
|
'ALTER TABLE sessions ADD COLUMN last_paused INTEGER'
|
||||||
)
|
)
|
||||||
|
|
||||||
# Add "Local" user to database as default unauthenticated user.
|
|
||||||
result = c_db.execute('SELECT id FROM users WHERE username = "Local"')
|
|
||||||
if not result.fetchone():
|
|
||||||
logger.debug(u'User "Local" does not exist. Adding user.')
|
|
||||||
c_db.execute('INSERT INTO users (user_id, username) VALUES (0, "Local")')
|
|
||||||
|
|
||||||
# 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')
|
||||||
|
@ -647,6 +580,94 @@ def dbcheck():
|
||||||
'WHERE t1.id = session_history.id) '
|
'WHERE t1.id = session_history.id) '
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Upgrade session_history_metadata table from earlier versions
|
||||||
|
try:
|
||||||
|
c_db.execute('SELECT full_title 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 full_title TEXT'
|
||||||
|
)
|
||||||
|
|
||||||
|
# Upgrade session_history_metadata table from earlier versions
|
||||||
|
try:
|
||||||
|
c_db.execute('SELECT tagline 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 tagline TEXT'
|
||||||
|
)
|
||||||
|
|
||||||
|
# Upgrade session_history_metadata table from earlier versions
|
||||||
|
try:
|
||||||
|
c_db.execute('SELECT library_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 library_id INTEGER'
|
||||||
|
)
|
||||||
|
c_db.execute(
|
||||||
|
'ALTER TABLE session_history_metadata ADD COLUMN library_title TEXT'
|
||||||
|
)
|
||||||
|
logger.debug(u"Updating library_id's in database. Please wait...")
|
||||||
|
from plexpy import datafactory
|
||||||
|
result = data_factory.update_library_ids()
|
||||||
|
|
||||||
|
if result:
|
||||||
|
logger.debug(u"Updated all library_id's in database.")
|
||||||
|
else:
|
||||||
|
logger.debug(u"Unable to update library_id's in database.")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Upgrade users table from earlier versions
|
||||||
|
try:
|
||||||
|
c_db.execute('SELECT do_notify from users')
|
||||||
|
except sqlite3.OperationalError:
|
||||||
|
logger.debug(u"Altering database. Updating database table users.")
|
||||||
|
c_db.execute(
|
||||||
|
'ALTER TABLE users ADD COLUMN do_notify INTEGER DEFAULT 1'
|
||||||
|
)
|
||||||
|
|
||||||
|
# Upgrade users table from earlier versions
|
||||||
|
try:
|
||||||
|
c_db.execute('SELECT keep_history from users')
|
||||||
|
except sqlite3.OperationalError:
|
||||||
|
logger.debug(u"Altering database. Updating database table users.")
|
||||||
|
c_db.execute(
|
||||||
|
'ALTER TABLE users ADD COLUMN keep_history INTEGER DEFAULT 1'
|
||||||
|
)
|
||||||
|
|
||||||
|
# Upgrade users table from earlier versions
|
||||||
|
try:
|
||||||
|
c_db.execute('SELECT custom_avatar_url from users')
|
||||||
|
except sqlite3.OperationalError:
|
||||||
|
logger.debug(u"Altering database. Updating database table users.")
|
||||||
|
c_db.execute(
|
||||||
|
'ALTER TABLE users ADD COLUMN custom_avatar_url TEXT'
|
||||||
|
)
|
||||||
|
|
||||||
|
# Upgrade notify_log table from earlier versions
|
||||||
|
try:
|
||||||
|
c_db.execute('SELECT on_pause from notify_log')
|
||||||
|
except sqlite3.OperationalError:
|
||||||
|
logger.debug(u"Altering database. Updating database table notify_log.")
|
||||||
|
c_db.execute(
|
||||||
|
'ALTER TABLE notify_log ADD COLUMN on_pause INTEGER'
|
||||||
|
)
|
||||||
|
c_db.execute(
|
||||||
|
'ALTER TABLE notify_log ADD COLUMN on_resume INTEGER'
|
||||||
|
)
|
||||||
|
c_db.execute(
|
||||||
|
'ALTER TABLE notify_log ADD COLUMN on_buffer INTEGER'
|
||||||
|
)
|
||||||
|
|
||||||
|
# Add "Local" user to database as default unauthenticated user.
|
||||||
|
result = c_db.execute('SELECT id FROM users WHERE username = "Local"')
|
||||||
|
if not result.fetchone():
|
||||||
|
logger.debug(u'User "Local" does not exist. Adding user.')
|
||||||
|
c_db.execute('INSERT INTO users (user_id, username) VALUES (0, "Local")')
|
||||||
|
|
||||||
conn_db.commit()
|
conn_db.commit()
|
||||||
c_db.close()
|
c_db.close()
|
||||||
|
|
||||||
|
|
|
@ -1004,4 +1004,32 @@ class DataFactory(object):
|
||||||
else:
|
else:
|
||||||
return 'No updated rating key needed in database. No changes were made.'
|
return 'No updated rating key needed in database. No changes were made.'
|
||||||
# for debugging
|
# for debugging
|
||||||
#return mapping
|
#return mapping #return mapping
|
||||||
|
|
||||||
|
def update_library_ids(self):
|
||||||
|
from plexpy import pmsconnect
|
||||||
|
|
||||||
|
pms_connect = pmsconnect.PmsConnect()
|
||||||
|
monitor_db = database.MonitorDatabase()
|
||||||
|
|
||||||
|
try:
|
||||||
|
query = 'SELECT id, rating_key FROM session_history_metadata WHERE library_id IS NULL'
|
||||||
|
result = monitor_db.select(query=query)
|
||||||
|
except:
|
||||||
|
logger.warn("Unable to execute database query for update_library_id.")
|
||||||
|
return None
|
||||||
|
|
||||||
|
for item in result:
|
||||||
|
id = item[0]
|
||||||
|
rating_key = item[1]
|
||||||
|
|
||||||
|
result = pms_connect.get_metadata_details(rating_key=rating_key)
|
||||||
|
|
||||||
|
if result:
|
||||||
|
metadata = result['metadata']
|
||||||
|
monitor_db.action('UPDATE session_history_metadata SET library_id = ? WHERE id = ?', [metadata['library_id'], id])
|
||||||
|
monitor_db.action('UPDATE session_history_metadata SET library_title = ? WHERE id = ?', [metadata['library_title'], id])
|
||||||
|
else:
|
||||||
|
continue
|
||||||
|
|
||||||
|
return True
|
Loading…
Add table
Add a link
Reference in a new issue