Remove unicode strings

This commit is contained in:
JonnyWong16 2019-11-23 14:37:26 -08:00
commit c279057f91
28 changed files with 834 additions and 847 deletions

View file

@ -137,8 +137,7 @@ def initialize(config_file):
return False
if CONFIG.HTTP_PORT < 21 or CONFIG.HTTP_PORT > 65535:
plexpy.logger.warn(
u"HTTP_PORT out of bounds: 21 < %s < 65535", CONFIG.HTTP_PORT)
plexpy.logger.warn("HTTP_PORT out of bounds: 21 < %s < 65535", CONFIG.HTTP_PORT)
CONFIG.HTTP_PORT = 8181
if not CONFIG.HTTPS_CERT:
@ -155,26 +154,26 @@ def initialize(config_file):
logger.initLogger(console=not QUIET, log_dir=CONFIG.LOG_DIR if log_writable else None,
verbose=VERBOSE)
logger.info(u"Starting Tautulli {}".format(
logger.info("Starting Tautulli {}".format(
common.RELEASE
))
logger.info(u"{}{} {} ({}{})".format(
logger.info("{}{} {} ({}{})".format(
'[Docker] ' if DOCKER else '', common.PLATFORM, common.PLATFORM_RELEASE, common.PLATFORM_VERSION,
' - {}'.format(common.PLATFORM_LINUX_DISTRO) if common.PLATFORM_LINUX_DISTRO else ''
))
logger.info(u"{} (UTC{})".format(
logger.info("{} (UTC{})".format(
plexpy.SYS_TIMEZONE.zone, plexpy.SYS_UTC_OFFSET
))
logger.info(u"Python {}".format(
logger.info("Python {}".format(
sys.version
))
logger.info(u"Program Dir: {}".format(
logger.info("Program Dir: {}".format(
PROG_DIR
))
logger.info(u"Config File: {}".format(
logger.info("Config File: {}".format(
CONFIG_FILE
))
logger.info(u"Database File: {}".format(
logger.info("Database File: {}".format(
DB_FILE
))
@ -186,18 +185,18 @@ def initialize(config_file):
CONFIG.NEWSLETTER_DIR, os.path.join(DATA_DIR, 'newsletters'), 'newsletters')
# Initialize the database
logger.info(u"Checking if the database upgrades are required...")
logger.info("Checking if the database upgrades are required...")
try:
dbcheck()
except Exception as e:
logger.error(u"Can't connect to the database: %s" % e)
logger.error("Can't connect to the database: %s" % e)
# Perform upgrades
logger.info(u"Checking if configuration upgrades are required...")
logger.info("Checking if configuration upgrades are required...")
try:
upgrade()
except Exception as e:
logger.error(u"Could not perform upgrades: %s" % e)
logger.error("Could not perform upgrades: %s" % e)
# Add notifier configs to logger blacklist
newsletters.blacklist_logger()
@ -206,19 +205,19 @@ def initialize(config_file):
# Check if Tautulli has a uuid
if CONFIG.PMS_UUID == '' or not CONFIG.PMS_UUID:
logger.debug(u"Generating UUID...")
logger.debug("Generating UUID...")
CONFIG.PMS_UUID = generate_uuid()
CONFIG.write()
# Check if Tautulli has an API key
if CONFIG.API_KEY == '':
logger.debug(u"Generating API key...")
logger.debug("Generating API key...")
CONFIG.API_KEY = generate_uuid()
CONFIG.write()
# Check if Tautulli has a jwt_secret
if CONFIG.JWT_SECRET == '' or not CONFIG.JWT_SECRET or CONFIG.JWT_UPDATE_SECRET:
logger.debug(u"Generating JWT secret...")
logger.debug("Generating JWT secret...")
CONFIG.JWT_SECRET = generate_uuid()
CONFIG.JWT_UPDATE_SECRET = False
CONFIG.write()
@ -231,7 +230,7 @@ def initialize(config_file):
with open(version_lock_file, "r") as fp:
prev_version = fp.read()
except IOError as e:
logger.error(u"Unable to read previous version from file '%s': %s" %
logger.error("Unable to read previous version from file '%s': %s" %
(version_lock_file, e))
else:
prev_version = 'cfd30996264b7e9fe4ef87f02d1cc52d1ae8bfca'
@ -248,7 +247,7 @@ def initialize(config_file):
with open(version_lock_file, "w") as fp:
fp.write(CURRENT_VERSION)
except IOError as e:
logger.error(u"Unable to write current version to file '%s': %s" %
logger.error("Unable to write current version to file '%s': %s" %
(version_lock_file, e))
# Check for new versions
@ -256,7 +255,7 @@ def initialize(config_file):
try:
versioncheck.check_update()
except:
logger.exception(u"Unhandled exception")
logger.exception("Unhandled exception")
LATEST_VERSION = CURRENT_VERSION
else:
LATEST_VERSION = CURRENT_VERSION
@ -269,7 +268,7 @@ def initialize(config_file):
with open(release_file, "r") as fp:
PREV_RELEASE = fp.read()
except IOError as e:
logger.error(u"Unable to read previous release from file '%s': %s" %
logger.error("Unable to read previous release from file '%s': %s" %
(release_file, e))
elif prev_version == 'cfd30996264b7e9fe4ef87f02d1cc52d1ae8bfca': # Commit hash for v1.4.25
PREV_RELEASE = 'v1.4.25'
@ -285,7 +284,7 @@ def initialize(config_file):
with open(release_file, "w") as fp:
fp.write(common.RELEASE)
except IOError as e:
logger.error(u"Unable to write current release to file '%s': %s" %
logger.error("Unable to write current release to file '%s': %s" %
(release_file, e))
# Get the real PMS urls for SSL and remote access
@ -311,7 +310,7 @@ def initialize(config_file):
def daemonize():
if threading.activeCount() != 1:
logger.warn(
u"There are %r active threads. Daemonizing may cause"
"There are %r active threads. Daemonizing may cause"
" strange behavior.",
threading.enumerate())
@ -352,10 +351,10 @@ def daemonize():
os.dup2(se.fileno(), sys.stderr.fileno())
pid = os.getpid()
logger.info(u"Daemonized to PID: %d", pid)
logger.info("Daemonized to PID: %d", pid)
if CREATEPID:
logger.info(u"Writing PID %d to %s", pid, PIDFILE)
logger.info("Writing PID %d to %s", pid, PIDFILE)
with file(PIDFILE, 'w') as fp:
fp.write("%s\n" % pid)
@ -373,7 +372,7 @@ def launch_browser(host, port, root):
try:
webbrowser.open('%s://%s:%i%s' % (protocol, host, port, root))
except Exception as e:
logger.error(u"Could not launch browser: %s" % e)
logger.error("Could not launch browser: %s" % e)
def win_system_tray():
@ -411,13 +410,13 @@ def win_system_tray():
('Update', None, tray_update, None),
('Restart', None, tray_restart, None))
logger.info(u"Launching system tray icon.")
logger.info("Launching system tray icon.")
try:
plexpy.WIN_SYS_TRAY_ICON = SysTrayIcon(icon, hover_text, menu_options, on_quit=tray_quit)
plexpy.WIN_SYS_TRAY_ICON.start()
except Exception as e:
logger.error(u"Unable to launch system tray icon: %s." % e)
logger.error("Unable to launch system tray icon: %s." % e)
plexpy.WIN_SYS_TRAY_ICON = None
@ -509,15 +508,15 @@ def schedule_job(func, name, hours=0, minutes=0, seconds=0, args=None):
if job:
if hours == 0 and minutes == 0 and seconds == 0:
SCHED.remove_job(name)
logger.info(u"Removed background task: %s", name)
logger.info("Removed background task: %s", name)
elif job.trigger.interval != datetime.timedelta(hours=hours, minutes=minutes):
SCHED.reschedule_job(name, trigger=IntervalTrigger(
hours=hours, minutes=minutes, seconds=seconds, timezone=pytz.UTC), args=args)
logger.info(u"Re-scheduled background task: %s", name)
logger.info("Re-scheduled background task: %s", name)
elif hours > 0 or minutes > 0 or seconds > 0:
SCHED.add_job(func, id=name, trigger=IntervalTrigger(
hours=hours, minutes=minutes, seconds=seconds, timezone=pytz.UTC), args=args)
logger.info(u"Scheduled background task: %s", name)
logger.info("Scheduled background task: %s", name)
def start():
@ -561,7 +560,7 @@ def start():
def sig_handler(signum=None, frame=None):
if signum is not None:
logger.info(u"Signal %i caught, saving and exiting...", signum)
logger.info("Signal %i caught, saving and exiting...", signum)
shutdown()
@ -781,7 +780,7 @@ def dbcheck():
try:
c_db.execute('SELECT started FROM sessions')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table sessions.")
logger.debug("Altering database. Updating database table sessions.")
c_db.execute(
'ALTER TABLE sessions ADD COLUMN started INTEGER'
)
@ -802,7 +801,7 @@ def dbcheck():
try:
c_db.execute('SELECT title FROM sessions')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table sessions.")
logger.debug("Altering database. Updating database table sessions.")
c_db.execute(
'ALTER TABLE sessions ADD COLUMN title TEXT'
)
@ -826,7 +825,7 @@ def dbcheck():
try:
c_db.execute('SELECT ip_address FROM sessions')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table sessions.")
logger.debug("Altering database. Updating database table sessions.")
c_db.execute(
'ALTER TABLE sessions ADD COLUMN ip_address TEXT'
)
@ -907,7 +906,7 @@ def dbcheck():
try:
c_db.execute('SELECT buffer_count FROM sessions')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table sessions.")
logger.debug("Altering database. Updating database table sessions.")
c_db.execute(
'ALTER TABLE sessions ADD COLUMN buffer_count INTEGER DEFAULT 0'
)
@ -919,7 +918,7 @@ def dbcheck():
try:
c_db.execute('SELECT last_paused FROM sessions')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table sessions.")
logger.debug("Altering database. Updating database table sessions.")
c_db.execute(
'ALTER TABLE sessions ADD COLUMN last_paused INTEGER'
)
@ -928,7 +927,7 @@ def dbcheck():
try:
c_db.execute('SELECT section_id FROM sessions')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table sessions.")
logger.debug("Altering database. Updating database table sessions.")
c_db.execute(
'ALTER TABLE sessions ADD COLUMN section_id INTEGER'
)
@ -937,7 +936,7 @@ def dbcheck():
try:
c_db.execute('SELECT stopped FROM sessions')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table sessions.")
logger.debug("Altering database. Updating database table sessions.")
c_db.execute(
'ALTER TABLE sessions ADD COLUMN stopped INTEGER'
)
@ -946,7 +945,7 @@ def dbcheck():
try:
c_db.execute('SELECT transcode_key FROM sessions')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table sessions.")
logger.debug("Altering database. Updating database table sessions.")
c_db.execute(
'ALTER TABLE sessions ADD COLUMN transcode_key TEXT'
)
@ -955,7 +954,7 @@ def dbcheck():
try:
c_db.execute('SELECT write_attempts FROM sessions')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table sessions.")
logger.debug("Altering database. Updating database table sessions.")
c_db.execute(
'ALTER TABLE sessions ADD COLUMN write_attempts INTEGER DEFAULT 0'
)
@ -964,7 +963,7 @@ def dbcheck():
try:
c_db.execute('SELECT transcode_decision FROM sessions')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table sessions.")
logger.debug("Altering database. Updating database table sessions.")
c_db.execute(
'ALTER TABLE sessions ADD COLUMN transcode_decision TEXT'
)
@ -994,7 +993,7 @@ def dbcheck():
try:
c_db.execute('SELECT raw_stream_info FROM sessions')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table sessions.")
logger.debug("Altering database. Updating database table sessions.")
c_db.execute(
'ALTER TABLE sessions ADD COLUMN product TEXT'
)
@ -1084,7 +1083,7 @@ def dbcheck():
try:
c_db.execute('SELECT video_height FROM sessions')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table sessions.")
logger.debug("Altering database. Updating database table sessions.")
c_db.execute(
'ALTER TABLE sessions ADD COLUMN video_height INTEGER'
)
@ -1093,7 +1092,7 @@ def dbcheck():
try:
c_db.execute('SELECT subtitles FROM sessions')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table sessions.")
logger.debug("Altering database. Updating database table sessions.")
c_db.execute(
'ALTER TABLE sessions ADD COLUMN subtitles INTEGER'
)
@ -1102,7 +1101,7 @@ def dbcheck():
try:
c_db.execute('SELECT synced_version_profile FROM sessions')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table sessions.")
logger.debug("Altering database. Updating database table sessions.")
c_db.execute(
'ALTER TABLE sessions ADD COLUMN synced_version_profile TEXT'
)
@ -1114,7 +1113,7 @@ def dbcheck():
try:
c_db.execute('SELECT transcode_hw_decoding FROM sessions')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table sessions.")
logger.debug("Altering database. Updating database table sessions.")
c_db.execute(
'ALTER TABLE sessions ADD COLUMN transcode_hw_decoding INTEGER'
)
@ -1126,7 +1125,7 @@ def dbcheck():
try:
c_db.execute('SELECT watched FROM sessions')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table sessions.")
logger.debug("Altering database. Updating database table sessions.")
c_db.execute(
'ALTER TABLE sessions ADD COLUMN watched INTEGER DEFAULT 0'
)
@ -1135,7 +1134,7 @@ def dbcheck():
try:
c_db.execute('SELECT live FROM sessions')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table sessions.")
logger.debug("Altering database. Updating database table sessions.")
c_db.execute(
'ALTER TABLE sessions ADD COLUMN live INTEGER'
)
@ -1147,7 +1146,7 @@ def dbcheck():
try:
c_db.execute('SELECT session_id FROM sessions')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table sessions.")
logger.debug("Altering database. Updating database table sessions.")
c_db.execute(
'ALTER TABLE sessions ADD COLUMN session_id TEXT'
)
@ -1156,7 +1155,7 @@ def dbcheck():
try:
c_db.execute('SELECT original_title FROM sessions')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table sessions.")
logger.debug("Altering database. Updating database table sessions.")
c_db.execute(
'ALTER TABLE sessions ADD COLUMN original_title TEXT'
)
@ -1165,7 +1164,7 @@ def dbcheck():
try:
c_db.execute('SELECT secure FROM sessions')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table sessions.")
logger.debug("Altering database. Updating database table sessions.")
c_db.execute(
'ALTER TABLE sessions ADD COLUMN secure INTEGER'
)
@ -1177,7 +1176,7 @@ def dbcheck():
try:
c_db.execute('SELECT rating_key_websocket FROM sessions')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table sessions.")
logger.debug("Altering database. Updating database table sessions.")
c_db.execute(
'ALTER TABLE sessions ADD COLUMN rating_key_websocket TEXT'
)
@ -1186,7 +1185,7 @@ def dbcheck():
try:
c_db.execute('SELECT video_scan_type FROM sessions')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table sessions.")
logger.debug("Altering database. Updating database table sessions.")
c_db.execute(
'ALTER TABLE sessions ADD COLUMN video_scan_type TEXT'
)
@ -1204,7 +1203,7 @@ def dbcheck():
try:
c_db.execute('SELECT reference_id FROM session_history')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table session_history.")
logger.debug("Altering database. Updating database table session_history.")
c_db.execute(
'ALTER TABLE session_history ADD COLUMN reference_id INTEGER DEFAULT 0'
)
@ -1227,7 +1226,7 @@ def dbcheck():
try:
c_db.execute('SELECT bandwidth FROM session_history')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table session_history.")
logger.debug("Altering database. Updating database table session_history.")
c_db.execute(
'ALTER TABLE session_history ADD COLUMN platform_version TEXT'
)
@ -1254,7 +1253,7 @@ def dbcheck():
try:
c_db.execute('SELECT secure FROM session_history')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table session_history.")
logger.debug("Altering database. Updating database table session_history.")
c_db.execute(
'ALTER TABLE session_history ADD COLUMN secure INTEGER'
)
@ -1266,7 +1265,7 @@ def dbcheck():
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.")
logger.debug("Altering database. Updating database table session_history_metadata.")
c_db.execute(
'ALTER TABLE session_history_metadata ADD COLUMN full_title TEXT'
)
@ -1275,7 +1274,7 @@ def dbcheck():
try:
c_db.execute('SELECT tagline FROM session_history_metadata')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table session_history_metadata.")
logger.debug("Altering database. Updating database table session_history_metadata.")
c_db.execute(
'ALTER TABLE session_history_metadata ADD COLUMN tagline TEXT'
)
@ -1284,7 +1283,7 @@ def dbcheck():
try:
c_db.execute('SELECT section_id FROM session_history_metadata')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table session_history_metadata.")
logger.debug("Altering database. Updating database table session_history_metadata.")
c_db.execute(
'ALTER TABLE session_history_metadata ADD COLUMN section_id INTEGER'
)
@ -1293,7 +1292,7 @@ def dbcheck():
try:
c_db.execute('SELECT labels FROM session_history_metadata')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table session_history_metadata.")
logger.debug("Altering database. Updating database table session_history_metadata.")
c_db.execute(
'ALTER TABLE session_history_metadata ADD COLUMN labels TEXT'
)
@ -1302,7 +1301,7 @@ def dbcheck():
try:
c_db.execute('SELECT original_title FROM session_history_metadata')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table session_history_metadata.")
logger.debug("Altering database. Updating database table session_history_metadata.")
c_db.execute(
'ALTER TABLE session_history_metadata ADD COLUMN original_title TEXT'
)
@ -1311,7 +1310,7 @@ def dbcheck():
try:
c_db.execute('SELECT transcode_decision FROM session_history_media_info')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table session_history_media_info.")
logger.debug("Altering database. Updating database table session_history_media_info.")
c_db.execute(
'ALTER TABLE session_history_media_info ADD COLUMN transcode_decision TEXT'
)
@ -1326,7 +1325,7 @@ def dbcheck():
try:
c_db.execute('SELECT subtitles FROM session_history_media_info')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table session_history_media_info.")
logger.debug("Altering database. Updating database table session_history_media_info.")
c_db.execute(
'ALTER TABLE session_history_media_info ADD COLUMN video_bit_depth INTEGER'
)
@ -1446,7 +1445,7 @@ def dbcheck():
try:
c_db.execute('SELECT subtitle_codec FROM session_history_media_info')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table session_history_media_info.")
logger.debug("Altering database. Updating database table session_history_media_info.")
c_db.execute(
'ALTER TABLE session_history_media_info ADD COLUMN subtitle_codec TEXT '
)
@ -1455,7 +1454,7 @@ def dbcheck():
try:
c_db.execute('SELECT synced_version_profile FROM session_history_media_info')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table session_history_media_info.")
logger.debug("Altering database. Updating database table session_history_media_info.")
c_db.execute(
'ALTER TABLE session_history_media_info ADD COLUMN synced_version_profile TEXT '
)
@ -1467,7 +1466,7 @@ def dbcheck():
try:
c_db.execute('SELECT transcode_hw_decoding FROM session_history_media_info')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table session_history_media_info.")
logger.debug("Altering database. Updating database table session_history_media_info.")
c_db.execute(
'ALTER TABLE session_history_media_info ADD COLUMN transcode_hw_decoding INTEGER '
)
@ -1483,7 +1482,7 @@ def dbcheck():
result = c_db.execute('SELECT stream_container FROM session_history_media_info '
'WHERE stream_container IS NULL').fetchall()
if len(result) > 0:
logger.debug(u"Altering database. Removing NULL values from session_history_media_info table.")
logger.debug("Altering database. Removing NULL values from session_history_media_info table.")
c_db.execute(
'UPDATE session_history_media_info SET stream_container = "" WHERE stream_container IS NULL '
)
@ -1497,13 +1496,13 @@ def dbcheck():
'UPDATE session_history_media_info SET stream_subtitle_codec = "" WHERE stream_subtitle_codec IS NULL '
)
except sqlite3.OperationalError:
logger.warn(u"Unable to remove NULL values from session_history_media_info table.")
logger.warn("Unable to remove NULL values from session_history_media_info table.")
# Upgrade session_history_media_info table from earlier versions
try:
c_db.execute('SELECT video_scan_type FROM session_history_media_info')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table session_history_media_info.")
logger.debug("Altering database. Updating database table session_history_media_info.")
c_db.execute(
'ALTER TABLE session_history_media_info ADD COLUMN video_scan_type TEXT'
)
@ -1542,7 +1541,7 @@ def dbcheck():
try:
c_db.execute('SELECT do_notify FROM users')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table users.")
logger.debug("Altering database. Updating database table users.")
c_db.execute(
'ALTER TABLE users ADD COLUMN do_notify INTEGER DEFAULT 1'
)
@ -1551,7 +1550,7 @@ def dbcheck():
try:
c_db.execute('SELECT keep_history FROM users')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table users.")
logger.debug("Altering database. Updating database table users.")
c_db.execute(
'ALTER TABLE users ADD COLUMN keep_history INTEGER DEFAULT 1'
)
@ -1560,7 +1559,7 @@ def dbcheck():
try:
c_db.execute('SELECT custom_avatar_url FROM users')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table users.")
logger.debug("Altering database. Updating database table users.")
c_db.execute(
'ALTER TABLE users ADD COLUMN custom_avatar_url TEXT'
)
@ -1569,7 +1568,7 @@ def dbcheck():
try:
c_db.execute('SELECT deleted_user FROM users')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table users.")
logger.debug("Altering database. Updating database table users.")
c_db.execute(
'ALTER TABLE users ADD COLUMN deleted_user INTEGER DEFAULT 0'
)
@ -1578,7 +1577,7 @@ def dbcheck():
try:
c_db.execute('SELECT allow_guest FROM users')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table users.")
logger.debug("Altering database. Updating database table users.")
c_db.execute(
'ALTER TABLE users ADD COLUMN allow_guest INTEGER DEFAULT 0'
)
@ -1593,7 +1592,7 @@ def dbcheck():
try:
c_db.execute('SELECT shared_libraries FROM users')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table users.")
logger.debug("Altering database. Updating database table users.")
c_db.execute(
'ALTER TABLE users ADD COLUMN shared_libraries TEXT'
)
@ -1617,7 +1616,7 @@ def dbcheck():
try:
c_db.execute('SELECT is_admin FROM users')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table users.")
logger.debug("Altering database. Updating database table users.")
c_db.execute(
'ALTER TABLE users ADD COLUMN is_admin INTEGER DEFAULT 0'
)
@ -1626,7 +1625,7 @@ def dbcheck():
try:
c_db.execute('SELECT poster_url FROM notify_log')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table notify_log.")
logger.debug("Altering database. Updating database table notify_log.")
c_db.execute(
'ALTER TABLE notify_log ADD COLUMN poster_url TEXT'
)
@ -1635,7 +1634,7 @@ def dbcheck():
try:
c_db.execute('SELECT timestamp FROM notify_log')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table notify_log.")
logger.debug("Altering database. Updating database table notify_log.")
c_db.execute(
'CREATE TABLE IF NOT EXISTS notify_log_temp (id INTEGER PRIMARY KEY AUTOINCREMENT, timestamp INTEGER, '
'session_key INTEGER, rating_key INTEGER, parent_rating_key INTEGER, grandparent_rating_key INTEGER, '
@ -1673,7 +1672,7 @@ def dbcheck():
try:
c_db.execute('SELECT notifier_id FROM notify_log')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table notify_log.")
logger.debug("Altering database. Updating database table notify_log.")
c_db.execute(
'ALTER TABLE notify_log ADD COLUMN notifier_id INTEGER'
)
@ -1682,7 +1681,7 @@ def dbcheck():
try:
c_db.execute('SELECT success FROM notify_log')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table notify_log.")
logger.debug("Altering database. Updating database table notify_log.")
c_db.execute(
'ALTER TABLE notify_log ADD COLUMN success INTEGER DEFAULT 0'
)
@ -1694,7 +1693,7 @@ def dbcheck():
try:
c_db.execute('SELECT start_time FROM newsletter_log')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table newsletter_log.")
logger.debug("Altering database. Updating database table newsletter_log.")
c_db.execute(
'ALTER TABLE newsletter_log ADD COLUMN start_time INTEGER'
)
@ -1706,7 +1705,7 @@ def dbcheck():
try:
c_db.execute('SELECT filename FROM newsletter_log')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table newsletter_log.")
logger.debug("Altering database. Updating database table newsletter_log.")
c_db.execute(
'ALTER TABLE newsletter_log ADD COLUMN filename TEXT'
)
@ -1715,7 +1714,7 @@ def dbcheck():
try:
c_db.execute('SELECT email_msg_id FROM newsletter_log')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table newsletter_log.")
logger.debug("Altering database. Updating database table newsletter_log.")
c_db.execute(
'ALTER TABLE newsletter_log ADD COLUMN email_msg_id TEXT'
)
@ -1724,7 +1723,7 @@ def dbcheck():
try:
c_db.execute('SELECT id_name FROM newsletters')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table newsletters.")
logger.debug("Altering database. Updating database table newsletters.")
c_db.execute(
'ALTER TABLE newsletters ADD COLUMN id_name TEXT NOT NULL DEFAULT ""'
)
@ -1733,7 +1732,7 @@ def dbcheck():
try:
result = c_db.execute('SELECT SQL FROM sqlite_master WHERE type="table" AND name="library_sections"').fetchone()
if 'section_id INTEGER UNIQUE' in result[0]:
logger.debug(u"Altering database. Removing unique constraint on section_id from library_sections table.")
logger.debug("Altering database. Removing unique constraint on section_id from library_sections table.")
c_db.execute(
'CREATE TABLE library_sections_temp (id INTEGER PRIMARY KEY AUTOINCREMENT, '
'server_id TEXT, section_id INTEGER, section_name TEXT, section_type TEXT, '
@ -1757,7 +1756,7 @@ def dbcheck():
'ALTER TABLE library_sections_temp RENAME TO library_sections'
)
except sqlite3.OperationalError:
logger.warn(u"Unable to remove section_id unique constraint from library_sections.")
logger.warn("Unable to remove section_id unique constraint from library_sections.")
try:
c_db.execute(
'DROP TABLE library_sections_temp'
@ -1769,18 +1768,18 @@ def dbcheck():
try:
result = c_db.execute('SELECT * FROM library_sections WHERE server_id = ""').fetchall()
if len(result) > 0:
logger.debug(u"Altering database. Removing duplicate libraries from library_sections table.")
logger.debug("Altering database. Removing duplicate libraries from library_sections table.")
c_db.execute(
'DELETE FROM library_sections WHERE server_id = ""'
)
except sqlite3.OperationalError:
logger.warn(u"Unable to remove duplicate libraries from library_sections table.")
logger.warn("Unable to remove duplicate libraries from library_sections table.")
# Upgrade library_sections table from earlier versions
try:
c_db.execute('SELECT agent FROM library_sections')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table library_sections.")
logger.debug("Altering database. Updating database table library_sections.")
c_db.execute(
'ALTER TABLE library_sections ADD COLUMN agent TEXT'
)
@ -1789,7 +1788,7 @@ def dbcheck():
try:
result = c_db.execute('SELECT SQL FROM sqlite_master WHERE type="table" AND name="users"').fetchone()
if 'username TEXT NOT NULL UNIQUE' in result[0]:
logger.debug(u"Altering database. Removing unique constraint on username from users table.")
logger.debug("Altering database. Removing unique constraint on username from users table.")
c_db.execute(
'CREATE TABLE users_temp (id INTEGER PRIMARY KEY AUTOINCREMENT, '
'user_id INTEGER DEFAULT NULL UNIQUE, username TEXT NOT NULL, friendly_name TEXT, '
@ -1811,7 +1810,7 @@ def dbcheck():
'ALTER TABLE users_temp RENAME TO users'
)
except sqlite3.OperationalError:
logger.warn(u"Unable to remove username unique constraint from users.")
logger.warn("Unable to remove username unique constraint from users.")
try:
c_db.execute(
'DROP TABLE users_temp'
@ -1823,7 +1822,7 @@ def dbcheck():
try:
result = c_db.execute('SELECT SQL FROM sqlite_master WHERE type="table" AND name="mobile_devices"').fetchone()
if 'device_token TEXT NOT NULL UNIQUE' in result[0]:
logger.debug(u"Altering database. Dropping and recreating mobile_devices table.")
logger.debug("Altering database. Dropping and recreating mobile_devices table.")
c_db.execute(
'DROP TABLE mobile_devices'
)
@ -1832,14 +1831,14 @@ def dbcheck():
'device_id TEXT NOT NULL UNIQUE, device_token TEXT, device_name TEXT, friendly_name TEXT)'
)
except sqlite3.OperationalError:
logger.warn(u"Failed to recreate mobile_devices table.")
logger.warn("Failed to recreate mobile_devices table.")
pass
# Upgrade mobile_devices table from earlier versions
try:
c_db.execute('SELECT last_seen FROM mobile_devices')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table mobile_devices.")
logger.debug("Altering database. Updating database table mobile_devices.")
c_db.execute(
'ALTER TABLE mobile_devices ADD COLUMN last_seen INTEGER'
)
@ -1848,7 +1847,7 @@ def dbcheck():
try:
c_db.execute('SELECT custom_conditions FROM notifiers')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table notifiers.")
logger.debug("Altering database. Updating database table notifiers.")
c_db.execute(
'ALTER TABLE notifiers ADD COLUMN custom_conditions TEXT'
)
@ -1860,7 +1859,7 @@ def dbcheck():
try:
c_db.execute('SELECT on_change FROM notifiers')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table notifiers.")
logger.debug("Altering database. Updating database table notifiers.")
c_db.execute(
'ALTER TABLE notifiers ADD COLUMN on_change INTEGER DEFAULT 0'
)
@ -1875,7 +1874,7 @@ def dbcheck():
try:
c_db.execute('SELECT rating_key FROM tvmaze_lookup')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table tvmaze_lookup.")
logger.debug("Altering database. Updating database table tvmaze_lookup.")
c_db.execute(
'ALTER TABLE tvmaze_lookup ADD COLUMN rating_key INTEGER'
)
@ -1890,7 +1889,7 @@ def dbcheck():
try:
c_db.execute('SELECT rating_key FROM themoviedb_lookup')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table themoviedb_lookup.")
logger.debug("Altering database. Updating database table themoviedb_lookup.")
c_db.execute(
'ALTER TABLE themoviedb_lookup ADD COLUMN rating_key INTEGER'
)
@ -1905,7 +1904,7 @@ def dbcheck():
try:
c_db.execute('SELECT success FROM user_login')
except sqlite3.OperationalError:
logger.debug(u"Altering database. Updating database table user_login.")
logger.debug("Altering database. Updating database table user_login.")
c_db.execute(
'ALTER TABLE user_login ADD COLUMN success INTEGER DEFAULT 1'
)
@ -1914,7 +1913,7 @@ def dbcheck():
result = c_db.execute('SELECT agent_label FROM notifiers '
'WHERE agent_label = "XBMC" OR agent_label = "OSX Notify"').fetchone()
if result:
logger.debug(u"Altering database. Renaming notifiers.")
logger.debug("Altering database. Renaming notifiers.")
c_db.execute(
'UPDATE notifiers SET agent_label = "Kodi" WHERE agent_label = "XBMC"'
)
@ -1925,7 +1924,7 @@ def dbcheck():
# 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.")
logger.debug("User 'Local' does not exist. Adding user.")
c_db.execute('INSERT INTO users (user_id, username) VALUES (0, "Local")')
# Create table indices
@ -1948,7 +1947,7 @@ def dbcheck():
result = db.select('SELECT SQL FROM sqlite_master WHERE type="table" AND name="poster_urls"')
if result:
result = db.select('SELECT * FROM poster_urls')
logger.debug(u"Altering database. Updating database table imgur_lookup.")
logger.debug("Altering database. Updating database table imgur_lookup.")
data_factory = datafactory.DataFactory()
@ -1990,31 +1989,31 @@ def shutdown(restart=False, update=False, checkout=False):
CONFIG.write()
if not restart and not update and not checkout:
logger.info(u"Tautulli is shutting down...")
logger.info("Tautulli is shutting down...")
if update:
logger.info(u"Tautulli is updating...")
logger.info("Tautulli is updating...")
try:
versioncheck.update()
except Exception as e:
logger.warn(u"Tautulli failed to update: %s. Restarting." % e)
logger.warn("Tautulli failed to update: %s. Restarting." % e)
if checkout:
logger.info(u"Tautulli is switching the git branch...")
logger.info("Tautulli is switching the git branch...")
try:
versioncheck.checkout_git_branch()
except Exception as e:
logger.warn(u"Tautulli failed to switch git branch: %s. Restarting." % e)
logger.warn("Tautulli failed to switch git branch: %s. Restarting." % e)
if CREATEPID:
logger.info(u"Removing pidfile %s", PIDFILE)
logger.info("Removing pidfile %s", PIDFILE)
os.remove(PIDFILE)
if WIN_SYS_TRAY_ICON:
WIN_SYS_TRAY_ICON.shutdown()
if restart:
logger.info(u"Tautulli is restarting...")
logger.info("Tautulli is restarting...")
exe = sys.executable
args = [exe, FULL_PATH]
@ -2088,7 +2087,7 @@ def analytics_event(category, action, label=None, value=None, **kwargs):
try:
TRACKER.send('event', data)
except Exception as e:
logger.warn(u"Failed to send analytics event for category '%s', action '%s': %s" % (category, action, e))
logger.warn("Failed to send analytics event for category '%s', action '%s': %s" % (category, action, e))
def check_folder_writable(folder, fallback, name):
@ -2099,17 +2098,17 @@ def check_folder_writable(folder, fallback, name):
try:
os.makedirs(folder)
except OSError as e:
logger.error(u"Could not create %s dir '%s': %s" % (name, folder, e))
logger.error("Could not create %s dir '%s': %s" % (name, folder, e))
if folder != fallback:
logger.warn(u"Falling back to %s dir '%s'" % (name, fallback))
logger.warn("Falling back to %s dir '%s'" % (name, fallback))
return check_folder_writable(None, fallback, name)
else:
return folder, None
if not os.access(folder, os.W_OK):
logger.error(u"Cannot write to %s dir '%s'" % (name, folder))
logger.error("Cannot write to %s dir '%s'" % (name, folder))
if folder != fallback:
logger.warn(u"Falling back to %s dir '%s'" % (name, fallback))
logger.warn("Falling back to %s dir '%s'" % (name, fallback))
return check_folder_writable(None, fallback, name)
else:
return folder, False