aboutsummaryrefslogtreecommitdiff
path: root/code/global_variables.py
blob: bdc5860e4d787d9cadc138ac2e9c0b2d3ebe2dbc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import configparser
import logging
from colorlog import ColoredFormatter

log_level = logging.DEBUG
log_format = (
    "  %(log_color)s%(levelname)-8s%(reset)s | %(log_color)s%(message)s%(reset)s"
)

logging.root.setLevel(log_level)
formatter = ColoredFormatter(log_format)

stream = logging.StreamHandler()
stream.setLevel(log_level)
stream.setFormatter(formatter)

LOG = logging.getLogger("pythonConfig")
LOG.setLevel(log_level)
LOG.addHandler(stream)

YES_VALUES = ["yes", "y", "true", "t", "1"]
NO_VALUES = ["no", "n", "false", "f", "0"]

try:
    with open("config.ini", "r") as f:
        file_contents = f.read()
except FileNotFoundError:
    config = configparser.ConfigParser()
    config["REQUIRED"] = {
        "BOT_TOKEN": "",
        "RADARR_HOST_URL": "http://",
        "RADARR_API_KEY": "",
        "ROOT_FOLDER_PATH": "",
        "QUALITY_PROFILE_ID": "",
        "ENABLE_JELLYFIN_TEMP_ACCOUNTS": "",
    }

    config["JELLYFIN_ACCOUNTS"] = {"JELLYFIN_URL": "", "JELLYFIN_API_KEY": ""}

    with open("config.ini", "w") as configfile:
        config.write(configfile)

    LOG.error("Configuration file `config.ini` has been generated. Please fill out all of the necessary information. Refer to the docs for information on what a specific configuration option is.")
    exit()

config = configparser.ConfigParser()
config.read_string(file_contents)

BOT_TOKEN = config["REQUIRED"]["BOT_TOKEN"]
RADARR_HOST_URL = config["REQUIRED"]["RADARR_HOST_URL"]
RADARR_API_KEY = config["REQUIRED"]["RADARR_API_KEY"]
ROOT_FOLDER_PATH = config["REQUIRED"]["ROOT_FOLDER_PATH"]
QUALITY_PROFILE_ID = config["REQUIRED"]["QUALITY_PROFILE_ID"]

if config["REQUIRED"]["ENABLE_JELLYFIN_TEMP_ACCOUNTS"].lower() in YES_VALUES:
    ENABLE_JELLYFIN_TEMP_ACCOUNTS = True
else:
    ENABLE_JELLYFIN_TEMP_ACCOUNTS = False

JELLYFIN_URL = config["JELLYFIN_ACCOUNTS"]["JELLYFIN_URL"]
JELLYFIN_API_KEY = config["JELLYFIN_ACCOUNTS"]["JELLYFIN_API_KEY"]
ACCOUNT_TIME = int(config["JELLYFIN_ACCOUNTS"]["ACCOUNT_TIME"])

RADARR_HEADERS = {
    "Content-Type": "application/json",
    "X-Api-Key": RADARR_API_KEY
}

JELLYFIN_HEADERS = {
    "Content-Type": "application/json",
    "X-Emby-Token": JELLYFIN_API_KEY,
}