summaryrefslogtreecommitdiffhomepage
path: root/get_settings.py
diff options
context:
space:
mode:
Diffstat (limited to 'get_settings.py')
-rw-r--r--get_settings.py416
1 files changed, 416 insertions, 0 deletions
diff --git a/get_settings.py b/get_settings.py
new file mode 100644
index 000000000..6eae7569d
--- /dev/null
+++ b/get_settings.py
@@ -0,0 +1,416 @@
+from get_argv import config_dir
+
+import os
+import re
+
+import ast
+from configparser import ConfigParser
+
+config_file = os.path.normpath(os.path.join(config_dir, 'config/config.ini'))
+
+def get_general_settings():
+ cfg = ConfigParser()
+ try:
+ with open(config_file, 'r') as f:
+ cfg.read_file(f)
+ except Exception:
+ pass
+
+ if cfg.has_section('general'):
+ if cfg.has_option('general', 'ip'):
+ ip = cfg.get('general', 'ip')
+ else:
+ ip = '0.0.0.0'
+
+ if cfg.has_option('general', 'port'):
+ port = cfg.get('general', 'port')
+ else:
+ port = '6767'
+
+ if cfg.has_option('general', 'base_url'):
+ base_url = cfg.get('general', 'base_url')
+ else:
+ base_url = '/'
+
+ if cfg.has_option('general', 'path_mappings'):
+ path_mappings = cfg.get('general', 'path_mappings')
+ else:
+ path_mappings = []
+
+ if cfg.has_option('general', 'log_level'):
+ log_level = cfg.get('general', 'log_level')
+ else:
+ log_level = 'INFO'
+
+ if cfg.has_option('general', 'branch'):
+ branch = cfg.get('general', 'branch')
+ else:
+ branch = 'master'
+
+ if cfg.has_option('general', 'auto_update'):
+ auto_update = cfg.getboolean('general', 'auto_update')
+ else:
+ auto_update = True
+
+ if cfg.has_option('general', 'single_language'):
+ single_language = cfg.getboolean('general', 'single_language')
+ else:
+ single_language = False
+
+ if cfg.has_option('general', 'minimum_score'):
+ minimum_score = cfg.get('general', 'minimum_score')
+ else:
+ minimum_score = '100'
+
+ if cfg.has_option('general', 'use_scenename'):
+ use_scenename = cfg.getboolean('general', 'use_scenename')
+ else:
+ use_scenename = False
+
+ if cfg.has_option('general', 'use_postprocessing'):
+ use_postprocessing = cfg.getboolean('general', 'use_postprocessing')
+ else:
+ use_postprocessing = False
+
+ if cfg.has_option('general', 'postprocessing_cmd'):
+ postprocessing_cmd = cfg.get('general', 'postprocessing_cmd')
+ else:
+ postprocessing_cmd = ''
+
+ if cfg.has_option('general', 'use_sonarr'):
+ use_sonarr = cfg.getboolean('general', 'use_sonarr')
+ else:
+ use_sonarr = False
+
+ if cfg.has_option('general', 'use_radarr'):
+ use_radarr = cfg.getboolean('general', 'use_radarr')
+ else:
+ use_radarr = False
+
+ if cfg.has_option('general', 'path_mappings_movie'):
+ path_mappings_movie = cfg.get('general', 'path_mappings_movie')
+ else:
+ path_mappings_movie = []
+
+ if cfg.has_option('general', 'serie_default_enabled'):
+ serie_default_enabled = cfg.getboolean('general', 'serie_default_enabled')
+ else:
+ serie_default_enabled = False
+
+ if cfg.has_option('general', 'serie_default_language'):
+ serie_default_language = cfg.get('general', 'serie_default_language')
+ else:
+ serie_default_language = []
+
+ if cfg.has_option('general', 'serie_default_hi'):
+ serie_default_hi = cfg.getboolean('general', 'serie_default_hi')
+ else:
+ serie_default_hi = False
+
+ if cfg.has_option('general', 'movie_default_enabled'):
+ movie_default_enabled = cfg.getboolean('general', 'movie_default_enabled')
+ else:
+ movie_default_enabled = False
+
+ if cfg.has_option('general', 'movie_default_language'):
+ movie_default_language = cfg.get('general', 'movie_default_language')
+ else:
+ movie_default_language = []
+
+ if cfg.has_option('general', 'movie_default_hi'):
+ movie_default_hi = cfg.getboolean('general', 'movie_default_hi')
+ else:
+ movie_default_hi = False
+
+ if cfg.has_option('general', 'page_size'):
+ page_size = cfg.get('general', 'page_size')
+ else:
+ page_size = '25'
+
+ if cfg.has_option('general', 'minimum_score_movie'):
+ minimum_score_movie = cfg.get('general', 'minimum_score_movie')
+ else:
+ minimum_score_movie = '100'
+
+ if cfg.has_option('general', 'use_embedded_subs'):
+ use_embedded_subs = cfg.getboolean('general', 'use_embedded_subs')
+ else:
+ use_embedded_subs = False
+
+ if cfg.has_option('general', 'only_monitored'):
+ only_monitored = cfg.getboolean('general', 'only_monitored')
+ else:
+ only_monitored = False
+
+ else:
+ ip = '0.0.0.0'
+ port = '6768'
+ base_url = '/'
+ path_mappings = []
+ log_level = 'INFO'
+ branch = 'master'
+ auto_update = True
+ single_language = False
+ minimum_score = '100'
+ use_scenename = False
+ use_postprocessing = False
+ postprocessing_cmd = False
+ use_sonarr = False
+ use_radarr = False
+ path_mappings_movie = []
+ serie_default_enabled = False
+ serie_default_language = []
+ serie_default_hi = False
+ movie_default_enabled = False
+ movie_default_language = []
+ movie_default_hi = False
+ page_size = '25'
+ minimum_score_movie = '100'
+ use_embedded_subs = False
+ only_monitored = False
+
+ return [ip, port, base_url, path_mappings, log_level, branch, auto_update, single_language, minimum_score, use_scenename, use_postprocessing, postprocessing_cmd, use_sonarr, use_radarr, path_mappings_movie, serie_default_enabled, serie_default_language, serie_default_hi, movie_default_enabled,movie_default_language, movie_default_hi, page_size, minimum_score_movie, use_embedded_subs, only_monitored]
+
+
+def get_auth_settings():
+ cfg = ConfigParser()
+ try:
+ with open(config_file, 'r') as f:
+ cfg.read_file(f)
+ except Exception:
+ pass
+
+ if cfg.has_section('auth'):
+ if cfg.has_option('auth', 'enabled'):
+ enabled = cfg.getboolean('auth', 'enabled')
+ else:
+ enabled = False
+
+ if cfg.has_option('auth', 'username'):
+ username = cfg.get('auth', 'username')
+ else:
+ username = ''
+
+ if cfg.has_option('auth', 'password'):
+ password = cfg.get('auth', 'password')
+ else:
+ password = ''
+ else:
+ enabled = False
+ username = ''
+ password = ''
+
+ return [enabled, username, password]
+
+
+def get_sonarr_settings():
+ cfg = ConfigParser()
+ try:
+ with open(config_file, 'r') as f:
+ cfg.read_file(f)
+ except Exception:
+ pass
+
+ if cfg.has_section('sonarr'):
+ if cfg.has_option('sonarr', 'ip'):
+ ip = cfg.get('sonarr', 'ip')
+ else:
+ ip = '127.0.0.1'
+
+ if cfg.has_option('sonarr', 'port'):
+ port = cfg.get('sonarr', 'port')
+ else:
+ port = '8989'
+
+ if cfg.has_option('sonarr', 'base_url'):
+ base_url = cfg.get('sonarr', 'base_url')
+ else:
+ base_url = '/'
+
+ if cfg.has_option('sonarr', 'ssl'):
+ ssl = cfg.get('sonarr', 'ssl')
+ else:
+ ssl = False
+
+ if cfg.has_option('sonarr', 'apikey'):
+ apikey = cfg.get('sonarr', 'apikey')
+ else:
+ apikey = ''
+
+ if cfg.has_option('sonarr', 'full_update'):
+ full_update = cfg.get('sonarr', 'full_update')
+ else:
+ full_update = 'Dayly'
+ else:
+ ip = '127.0.0.1'
+ port = '8989'
+ base_url = '/'
+ ssl = False
+ apikey = ''
+ full_update = 'Daily'
+
+ if ssl == 1:
+ protocol_sonarr = "https"
+ else:
+ protocol_sonarr = "http"
+
+ if base_url == None:
+ base_url = "/"
+ if base_url.startswith("/") == False:
+ base_url = "/" + base_url
+ if base_url.endswith("/"):
+ base_url = base_url[:-1]
+
+ url_sonarr = protocol_sonarr + "://" + ip + ":" + port + base_url
+ url_sonarr_short = protocol_sonarr + "://" + ip + ":" + port
+
+
+
+ return [ip, port, base_url, ssl, apikey, full_update, url_sonarr, url_sonarr_short]
+
+
+def get_radarr_settings():
+ cfg = ConfigParser()
+ try:
+ with open(config_file, 'r') as f:
+ cfg.read_file(f)
+ except Exception:
+ pass
+
+ if cfg.has_section('radarr'):
+ if cfg.has_option('radarr', 'ip'):
+ ip = cfg.get('radarr', 'ip')
+ else:
+ ip = '127.0.0.1'
+
+ if cfg.has_option('radarr', 'port'):
+ port = cfg.get('radarr', 'port')
+ else:
+ port = '7878'
+
+ if cfg.has_option('radarr', 'base_url'):
+ base_url = cfg.get('radarr', 'base_url')
+ else:
+ base_url = '/'
+
+ if cfg.has_option('radarr', 'ssl'):
+ ssl = cfg.get('radarr', 'ssl')
+ else:
+ ssl = False
+
+ if cfg.has_option('radarr', 'apikey'):
+ apikey = cfg.get('radarr', 'apikey')
+ else:
+ apikey = ''
+
+ if cfg.has_option('radarr', 'full_update'):
+ full_update = cfg.get('radarr', 'full_update')
+ else:
+ full_update = 'Dayly'
+ else:
+ ip = '127.0.0.1'
+ port = '8989'
+ base_url = '/'
+ ssl = False
+ apikey = ''
+ full_update = 'Daily'
+
+ if ssl == 1:
+ protocol_radarr = "https"
+ else:
+ protocol_radarr = "http"
+
+ if base_url is None:
+ base_url = "/"
+ if base_url.startswith("/") is False:
+ base_url = "/" + base_url
+ if base_url.endswith("/"):
+ base_url = base_url[:-1]
+
+ url_radarr = protocol_radarr + "://" + ip + ":" + port + base_url
+ url_radarr_short = protocol_radarr + "://" + ip + ":" + port
+
+ return [ip, port, base_url, ssl, apikey, full_update, url_radarr , url_radarr_short]
+
+
+
+def path_replace(path):
+ for path_mapping in path_mappings:
+ if path_mapping[0] in path:
+ path = path.replace(path_mapping[0], path_mapping[1])
+ if path.startswith('\\\\') or re.match(r'^[a-zA-Z]:\\', path):
+ path = path.replace('/', '\\')
+ elif path.startswith('/'):
+ path = path.replace('\\', '/')
+ break
+ return path
+
+def path_replace_reverse(path):
+ for path_mapping in path_mappings:
+ if path_mapping[1] in path:
+ path = path.replace(path_mapping[1], path_mapping[0])
+ if path.startswith('\\\\') or re.match(r'^[a-zA-Z]:\\', path):
+ path = path.replace('/', '\\')
+ elif path.startswith('/'):
+ path = path.replace('\\', '/')
+ break
+ return path
+
+def path_replace_movie(path):
+ for path_mapping in path_mappings_movie:
+ if path_mapping[0] in path:
+ path = path.replace(path_mapping[0], path_mapping[1])
+ if path.startswith('\\\\') or re.match(r'^[a-zA-Z]:\\', path):
+ path = path.replace('/', '\\')
+ elif path.startswith('/'):
+ path = path.replace('\\', '/')
+ break
+ return path
+
+def path_replace_reverse_movie(path):
+ for path_mapping in path_mappings_movie:
+ if path_mapping[1] in path:
+ path = path.replace(path_mapping[1], path_mapping[0])
+ if path.startswith('\\\\') or re.match(r'^[a-zA-Z]:\\', path):
+ path = path.replace('/', '\\')
+ elif path.startswith('/'):
+ path = path.replace('\\', '/')
+ break
+ return path
+
+def pp_replace(pp_command, episode, subtitles, language, language_code2, language_code3):
+ pp_command = pp_command.replace('{{directory}}', os.path.dirname(episode))
+ pp_command = pp_command.replace('{{episode}}', episode)
+ pp_command = pp_command.replace('{{episode_name}}', os.path.splitext(os.path.basename(episode))[0])
+ pp_command = pp_command.replace('{{subtitles}}', subtitles)
+ pp_command = pp_command.replace('{{subtitles_language}}', language)
+ pp_command = pp_command.replace('{{subtitles_language_code2}}', language_code2)
+ pp_command = pp_command.replace('{{subtitles_language_code3}}', language_code3)
+ return pp_command
+
+result = get_general_settings()
+ip = result[0]
+port = result[1]
+base_url = result[2]
+path_mappings = ast.literal_eval(result[3])
+log_level = result[4]
+branch = result[5]
+automatic = result[6]
+single_language = result[7]
+minimum_score = result[8]
+use_scenename = result[9]
+use_processing = result[10]
+postprocessing_cmd = result[11]
+use_sonarr = result[12]
+use_radarr = result[13]
+path_mappings_movie = ast.literal_eval(result[14])
+serie_default_enabled = result[15]
+serie_default_language = result[16]
+serie_default_hi = result[17]
+movie_default_enabled = result[18]
+movie_default_language = result[19]
+movie_default_hi = result[20]
+page_size = result[21]
+minimum_score_movie = result[22]
+use_embedded_subs = result[23]
+only_monitored = result[24] \ No newline at end of file