This repository has been archived by the owner on Apr 22, 2023. It is now read-only.
/
config.py
124 lines (111 loc) · 4.06 KB
/
config.py
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
import configparser
import sys
from colored import stylize
from backend import constants, logger
from backend.api import telegram, sonarr, radarr, ombi
parser = None
def initialize():
initParser()
parseConfig()
# Initialize the configuration parser
def initParser():
global parser
try:
parser = configparser.ConfigParser()
parser.read(constants.CONFIG_FILE)
if not(len(parser) > 1):
raise Exception()
logger.info(__name__, "Configparser initialized")
except:
logger.error(__name__, "Failed to load config.ini: Please ensure that a valid config file is located at {}".format(constants.CONFIG_FILE))
exit()
# Wrapper to parse all configuration data
def parseConfig():
parseGeneral()
parseTelegram()
parseOmbi()
parseRadarr()
parseSonarr()
parseAdmins()
parseNotifications()
def parseGeneral():
try:
if('GENERAL' in parser):
constants.BOT_NAME = parser['GENERAL']['NAME']
logger.info(__name__, "Parsed general information")
else:
raise Exception()
except:
logger.error(__name__, "Failed to get general config information: Check your config.ini")
exit()
def parseNotifications():
try:
if('NOTIFICATIONS' in parser):
constants.NOTIFICATION_TIME = parser['NOTIFICATIONS']['TIME']
constants.NOTIFICATION_DAY = parser['NOTIFICATIONS']['DAY']
logger.warning(__name__, "Notification times set: {} @ {}".format(constants.NOTIFICATION_DAY, constants.NOTIFICATION_TIME))
else:
raise Exception()
except:
logger.error(__name__, "Failed to get notification times: Check your config.ini")
exit()
# Admin list parsing
def parseAdmins():
try:
if('TELEGRAM' in parser):
for admin in parser['TELEGRAM']['AUTO_ADMINS'].split(','):
telegram.addAdmin(int(admin.strip()))
logger.warning(__name__, "Telegram admins: {}".format(telegram.admins))
else:
raise Exception()
except:
logger.error(__name__, "Failed to get the admin user list: Check your config.ini")
exit()
# Sonarr API parsing
def parseSonarr():
if('SONARR' in parser):
if(parser.getboolean('SONARR', 'ENABLED')):
sonarr.enabled = True
sonarr.api = parser['SONARR']['API']
sonarr.host = parser['SONARR']['HOST']
sonarr.update_frequency = int(parser['SONARR']['UPDATE_FREQ'])
sonarr.initialize()
logger.info(__name__, "Sonarr API parsed")
else:
logger.error(__name__, "Could not read the Sonarr configuration values: Check your config.ini")
exit()
# Radarr API parsing
def parseRadarr():
if('RADARR' in parser):
if(parser.getboolean('RADARR', 'ENABLED')):
radarr.enabled = True
radarr.api = parser['RADARR']['API']
radarr.host = parser['RADARR']['HOST']
radarr.update_frequency = int(parser['RADARR']['UPDATE_FREQ'])
radarr.initialize()
logger.info(__name__, "Radarr API parsed")
else:
logger.error(__name__, "Could not read the Radarr configuration values: Check your config.ini")
exit()
# Ombi API parsing
def parseOmbi():
if('OMBI' in parser):
if(parser.getboolean('OMBI', 'ENABLED')):
ombi.enabled = True
ombi.api = parser['OMBI']['API']
ombi.host = parser['OMBI']['HOST']
ombi.initialize()
logger.info(__name__, "Ombi API parsed")
else:
logger.error(__name__, "Failed to initialize Ombi's API: Check your config.ini")
exit()
# Telegram API parsing
def parseTelegram():
if('TELEGRAM' in parser):
telegram.api = parser['TELEGRAM']['BOT_TOKEN']
telegram.auto_approve = parser.getboolean('TELEGRAM', 'AUTO_APPROVE')
telegram.initialize()
logger.info(__name__, "Telegram API initialized")
else:
logger.error(__name__, "Failed to initialize Telegram's API: Check your config.ini")
exit()