Log quality profile information when needed
This commit is contained in:
parent
14f25f131d
commit
86b12da175
@ -37,9 +37,14 @@ def validate_config(file_contents):
|
|||||||
|
|
||||||
# Make sure connection to Radarr API can be established
|
# Make sure connection to Radarr API can be established
|
||||||
try:
|
try:
|
||||||
requests.get(config["REQUIRED"]["RADARR_HOST_URL"], headers=radarr_headers)
|
requests.get(
|
||||||
|
config["REQUIRED"]["RADARR_HOST_URL"], headers=radarr_headers
|
||||||
|
)
|
||||||
except requests.exceptions.ConnectionError:
|
except requests.exceptions.ConnectionError:
|
||||||
LOG.error("Could not connect to Radarr API. Please check your RADARR_HOST_URL and RADARR_API_KEY")
|
LOG.error(
|
||||||
|
"Could not connect to Radarr API. Please check your"
|
||||||
|
" RADARR_HOST_URL and RADARR_API_KEY"
|
||||||
|
)
|
||||||
errors += 1
|
errors += 1
|
||||||
|
|
||||||
# Validate ROOT_FOLDER_PATH
|
# Validate ROOT_FOLDER_PATH
|
||||||
@ -60,11 +65,18 @@ def validate_config(file_contents):
|
|||||||
not config["REQUIRED"]["QUALITY_PROFILE_ID"]
|
not config["REQUIRED"]["QUALITY_PROFILE_ID"]
|
||||||
or config["REQUIRED"]["QUALITY_PROFILE_ID"] not in all_ids
|
or config["REQUIRED"]["QUALITY_PROFILE_ID"] not in all_ids
|
||||||
):
|
):
|
||||||
config["AVAILABLE_QUALITY_IDS"] = {}
|
available_ids = {}
|
||||||
for entry in data:
|
for entry in data:
|
||||||
config["AVAILABLE_QUALITY_IDS"][str(entry["id"])] = entry["name"]
|
available_ids[str(entry["id"])] = entry["name"]
|
||||||
|
|
||||||
LOG.error("Empty or invalid QUALITY_PROFILE_ID passed. Pass one of the valid IDs which are now listed within the config.ini file.")
|
LOG.info("Available QUALITY_PROFILE_IDs:")
|
||||||
|
for key, value in available_ids.items():
|
||||||
|
LOG.info(f"ID: {key} - Name: {value}")
|
||||||
|
|
||||||
|
LOG.error(
|
||||||
|
"Empty or invalid QUALITY_PROFILE_ID passed. Pass one of the"
|
||||||
|
" valid IDs which are now logged above."
|
||||||
|
)
|
||||||
errors += 1
|
errors += 1
|
||||||
|
|
||||||
# Validate ENABLE_JELLYFIN_TEMP_ACCOUNTS
|
# Validate ENABLE_JELLYFIN_TEMP_ACCOUNTS
|
||||||
@ -74,41 +86,75 @@ def validate_config(file_contents):
|
|||||||
|
|
||||||
else:
|
else:
|
||||||
# Validate the value of ENABLE_JELLYFIN_TEMP_ACCOUNTS
|
# Validate the value of ENABLE_JELLYFIN_TEMP_ACCOUNTS
|
||||||
if (config["REQUIRED"]["ENABLE_JELLYFIN_TEMP_ACCOUNTS"].lower() not in YES_VALUES + NO_VALUES):
|
if (
|
||||||
LOG.error("Invalid value passed to ENABLE_JELLYFIN_TEMP_ACCOUNTS. Pass a true/false value.")
|
config["REQUIRED"]["ENABLE_JELLYFIN_TEMP_ACCOUNTS"].lower()
|
||||||
|
not in YES_VALUES + NO_VALUES
|
||||||
|
):
|
||||||
|
LOG.error(
|
||||||
|
"Invalid value passed to ENABLE_JELLYFIN_TEMP_ACCOUNTS."
|
||||||
|
" Pass a true/false value."
|
||||||
|
)
|
||||||
errors += 1
|
errors += 1
|
||||||
|
|
||||||
if (config["REQUIRED"]["ENABLE_JELLYFIN_TEMP_ACCOUNTS"].lower() in YES_VALUES):
|
if (
|
||||||
|
config["REQUIRED"]["ENABLE_JELLYFIN_TEMP_ACCOUNTS"].lower()
|
||||||
|
in YES_VALUES
|
||||||
|
):
|
||||||
# Validate JELLYFIN_URL
|
# Validate JELLYFIN_URL
|
||||||
if not config["JELLYFIN_ACCOUNTS"]["JELLYFIN_URL"]:
|
if not config["JELLYFIN_ACCOUNTS"]["JELLYFIN_URL"]:
|
||||||
LOG.error("Empty URL passed to JELLYFIN_URL. Pass a valid URL (e.g. http://localhost:8096)")
|
LOG.error(
|
||||||
|
"Empty URL passed to JELLYFIN_URL. Pass a valid URL"
|
||||||
|
" (e.g. http://localhost:8096)"
|
||||||
|
)
|
||||||
errors += 1
|
errors += 1
|
||||||
# Validate JELLYFIN_API_KEY
|
# Validate JELLYFIN_API_KEY
|
||||||
if not config["JELLYFIN_ACCOUNTS"]["JELLYFIN_API_KEY"]:
|
if not config["JELLYFIN_ACCOUNTS"]["JELLYFIN_API_KEY"]:
|
||||||
LOG.error("Empty JELLYFIN_API_KEY passed. Create a Jellyfin API key in your Jellyfin dashboard and pass it here.")
|
LOG.error(
|
||||||
|
"Empty JELLYFIN_API_KEY passed. Create a Jellyfin API"
|
||||||
|
" key in your Jellyfin dashboard and pass it here."
|
||||||
|
)
|
||||||
errors += 1
|
errors += 1
|
||||||
# Validate ACCOUNT_TIME
|
# Validate ACCOUNT_TIME
|
||||||
if not config["JELLYFIN_ACCOUNTS"]["ACCOUNT_TIME"]:
|
if not config["JELLYFIN_ACCOUNTS"]["ACCOUNT_TIME"]:
|
||||||
LOG.error("Empty ACCOUNT_TIME passed. Pass a valid time in the format of HH:MM:SS (e.g. 00:30:00)")
|
LOG.error(
|
||||||
|
"Empty ACCOUNT_TIME passed. Pass a valid time in the"
|
||||||
|
" format of HH:MM:SS (e.g. 00:30:00)"
|
||||||
|
)
|
||||||
errors += 1
|
errors += 1
|
||||||
try:
|
try:
|
||||||
time = int(config["JELLYFIN_ACCOUNTS"]["ACCOUNT_TIME"])
|
time = int(config["JELLYFIN_ACCOUNTS"]["ACCOUNT_TIME"])
|
||||||
except ValueError:
|
except ValueError:
|
||||||
LOG.error("Invalid value passed to ACCOUNT_TIME. Pass a valid integer value (e.g. 24)")
|
LOG.error(
|
||||||
|
"Invalid value passed to ACCOUNT_TIME. Pass a valid"
|
||||||
|
" integer value (e.g. 24)"
|
||||||
|
)
|
||||||
errors += 1
|
errors += 1
|
||||||
# Validate SIMPLE_PASSWORDS
|
# Validate SIMPLE_PASSWORDS
|
||||||
if not config["JELLYFIN_ACCOUNTS"]["SIMPLE_PASSWORDS"]:
|
if not config["JELLYFIN_ACCOUNTS"]["SIMPLE_PASSWORDS"]:
|
||||||
LOG.error("Empty SIMPLE_PASSWORDS passed. Pass a true/false value.")
|
LOG.error(
|
||||||
|
"Empty SIMPLE_PASSWORDS passed. Pass a true/false"
|
||||||
|
" value."
|
||||||
|
)
|
||||||
errors += 1
|
errors += 1
|
||||||
else:
|
else:
|
||||||
if (config["JELLYFIN_ACCOUNTS"]["SIMPLE_PASSWORDS"].lower() not in YES_VALUES + NO_VALUES):
|
if (
|
||||||
LOG.error("Invalid value passed to SIMPLE_PASSWORDS. Pass a true/false value.")
|
config["JELLYFIN_ACCOUNTS"]["SIMPLE_PASSWORDS"].lower()
|
||||||
|
not in YES_VALUES + NO_VALUES
|
||||||
|
):
|
||||||
|
LOG.error(
|
||||||
|
"Invalid value passed to SIMPLE_PASSWORDS. Pass a"
|
||||||
|
" true/false value."
|
||||||
|
)
|
||||||
errors += 1
|
errors += 1
|
||||||
|
|
||||||
# Make sure connection to Jellyfin API can be established
|
# Make sure connection to Jellyfin API can be established
|
||||||
jellyfin_headers = {
|
jellyfin_headers = {
|
||||||
"Content-Type": "application/json",
|
"Content-Type": "application/json",
|
||||||
"Authorization": f"MediaBrowser Client=\"other\", device=\"CordArr\", DeviceId=\"cordarr-device-id\", Version=\"0.0.0\", Token=\"{config['JELLYFIN_ACCOUNTS']['JELLYFIN_API_KEY']}\"",
|
"Authorization": (
|
||||||
|
'MediaBrowser Client="other", device="CordArr",'
|
||||||
|
' DeviceId="cordarr-device-id", Version="0.0.0",'
|
||||||
|
f' Token="{config["JELLYFIN_ACCOUNTS"]["JELLYFIN_API_KEY"]}"'
|
||||||
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
response = requests.get(
|
response = requests.get(
|
||||||
@ -116,15 +162,25 @@ def validate_config(file_contents):
|
|||||||
headers=jellyfin_headers,
|
headers=jellyfin_headers,
|
||||||
)
|
)
|
||||||
if response.status_code != 200:
|
if response.status_code != 200:
|
||||||
LOG.error("Could not connect to Jellyfin API. Please check your JELLYFIN_URL and JELLYFIN_API_KEY")
|
LOG.error(
|
||||||
|
"Could not connect to Jellyfin API. Please check your"
|
||||||
|
" JELLYFIN_URL and JELLYFIN_API_KEY"
|
||||||
|
)
|
||||||
errors += 1
|
errors += 1
|
||||||
|
|
||||||
if errors > 0:
|
if errors > 0:
|
||||||
LOG.info(f"Found {errors} error(s) in the configuration file. Please fix them before restarting the application.")
|
LOG.info(
|
||||||
|
f"Found {errors} error(s) in the configuration file. Please"
|
||||||
|
" fix them before restarting the application."
|
||||||
|
)
|
||||||
exit()
|
exit()
|
||||||
|
|
||||||
except KeyError:
|
except KeyError:
|
||||||
LOG.critical("You are missing at least one of the configuration options in your config.ini file. In order to regenerate all options, delete the config.ini file and restart the application.")
|
LOG.critical(
|
||||||
|
"You are missing at least one of the configuration options in your"
|
||||||
|
" config.ini file. In order to regenerate all options, delete the"
|
||||||
|
" config.ini file and restart the application."
|
||||||
|
)
|
||||||
exit()
|
exit()
|
||||||
|
|
||||||
|
|
||||||
@ -137,8 +193,13 @@ def create_config():
|
|||||||
# While here, we can begin by making the database
|
# While here, we can begin by making the database
|
||||||
db = sqlite3.connect("cordarr.db")
|
db = sqlite3.connect("cordarr.db")
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
cursor.execute("CREATE TABLE IF NOT EXISTS movies (user_id, movie_id, movie_title)")
|
cursor.execute(
|
||||||
cursor.execute("CREATE TABLE IF NOT EXISTS jellyfin_accounts (user_id, jellyfin_user_id, deletion_time, PRIMARY KEY (user_id))")
|
"CREATE TABLE IF NOT EXISTS movies (user_id, movie_id, movie_title)"
|
||||||
|
)
|
||||||
|
cursor.execute(
|
||||||
|
"CREATE TABLE IF NOT EXISTS jellyfin_accounts (user_id,"
|
||||||
|
" jellyfin_user_id, deletion_time, PRIMARY KEY (user_id))"
|
||||||
|
)
|
||||||
db.commit()
|
db.commit()
|
||||||
db.close()
|
db.close()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user