diff --git a/qbittorrent_exporter/exporter.py b/qbittorrent_exporter/exporter.py index 65bfbb5..2e135fe 100644 --- a/qbittorrent_exporter/exporter.py +++ b/qbittorrent_exporter/exporter.py @@ -215,26 +215,26 @@ class QbittorrentMetricsCollector: return metrics -class SignalHandler: +class ShutdownSignalHandler: def __init__(self): - self.shutdownCount = 0 + self.shutdown_count: int = 0 # Register signal handler signal.signal(signal.SIGINT, self._on_signal_received) signal.signal(signal.SIGTERM, self._on_signal_received) def is_shutting_down(self): - return self.shutdownCount > 0 + return self.shutdown_count > 0 def _on_signal_received(self, signal, frame): - if self.shutdownCount > 1: + if self.shutdown_count > 1: logger.warn("Forcibly killing exporter") sys.exit(1) logger.info("Exporter is shutting down") - self.shutdownCount += 1 + self.shutdown_count += 1 -def get_config_value(key, default=""): +def _get_config_value(key, default=""): input_path = os.environ.get("FILE__" + key, None) if input_path is not None: try: @@ -246,6 +246,22 @@ def get_config_value(key, default=""): return os.environ.get(key, default) +def get_config() -> dict: + """Loads all config values.""" + return { + "host": _get_config_value("QBITTORRENT_HOST", ""), + "port": _get_config_value("QBITTORRENT_PORT", ""), + "username": _get_config_value("QBITTORRENT_USER", ""), + "password": _get_config_value("QBITTORRENT_PASS", ""), + "exporter_port": int(_get_config_value("EXPORTER_PORT", "8000")), + "log_level": _get_config_value("EXPORTER_LOG_LEVEL", "INFO"), + "metrics_prefix": _get_config_value("METRICS_PREFIX", "qbittorrent"), + "verify_webui_certificate": ( + _get_config_value("VERIFY_WEBUI_CERTIFICATE", "True") == "True" + ), + } + + def main(): # Init logger so it can be used logHandler = logging.StreamHandler() @@ -256,23 +272,13 @@ def main(): logger.addHandler(logHandler) logger.setLevel("INFO") # default until config is loaded - config = { - "host": get_config_value("QBITTORRENT_HOST", ""), - "port": get_config_value("QBITTORRENT_PORT", ""), - "username": get_config_value("QBITTORRENT_USER", ""), - "password": get_config_value("QBITTORRENT_PASS", ""), - "exporter_port": int(get_config_value("EXPORTER_PORT", "8000")), - "log_level": get_config_value("EXPORTER_LOG_LEVEL", "INFO"), - "metrics_prefix": get_config_value("METRICS_PREFIX", "qbittorrent"), - "verify_webui_certificate": ( - get_config_value("VERIFY_WEBUI_CERTIFICATE", "True") == "True" - ), - } + config = get_config() + # set level once config has been loaded logger.setLevel(config["log_level"]) # Register signal handler - signal_handler = SignalHandler() + signal_handler = ShutdownSignalHandler() if not config["host"]: logger.error(