diff --git a/app/grabber.py b/app/grabber.py index 6d6f9eb..ab02e4a 100644 --- a/app/grabber.py +++ b/app/grabber.py @@ -10,7 +10,7 @@ def grab_calendar(ics_url: str): return None try: - calendar = Calendar(response.text) + calendar = Calendar(response.content.decode("utf-8")) except Exception: logger.warning("Unable to parse calendar") return None diff --git a/app/handler.py b/app/handler.py index 644f3ca..c06d7ea 100644 --- a/app/handler.py +++ b/app/handler.py @@ -18,11 +18,11 @@ def generate_class(response_callback): query = urllib.parse_qs(url.query) if method != "GET" or path != "/calendar.ics": - logger.info("Invalid " + method + " request on " + path + " from " + host) + logger.info(f"Invalid {method} request on {path} from {host}") self._send_error(404, "Invalid endpoint") return - logger.info("Received calendar request from " + host) + logger.info(f"Received calendar request from {host}") td_group = (query.get("td") or ["all"])[0] sh_group = (query.get("sh") or ["all"])[0] @@ -32,7 +32,7 @@ def generate_class(response_callback): self._send_error(500, "Unable to generate calendar") return - logger.info("Generated calendar for " + host) + logger.info(f"Generated calendar for {host}") self.send_response(200) self.send_header("Content-Type", "text/calendar") diff --git a/app/logger.py b/app/logger.py index 2288e3c..ec28121 100644 --- a/app/logger.py +++ b/app/logger.py @@ -1,11 +1,13 @@ import sys import threading +from datetime import datetime _console_lock = threading.Lock() def _log(prefix: str, message: str): + time = datetime.now().strftime("[%H:%M:%S]") with _console_lock: - print(prefix + ": " + message) + print(f"{time} {prefix} {message}") def info(message: str): _log("INFO", message) diff --git a/app/main.py b/app/main.py index dbb7ba8..2dbeb0f 100644 --- a/app/main.py +++ b/app/main.py @@ -12,7 +12,7 @@ def _get_environment_variable(key: str) -> str: value = os.getenv(key) if not value: - logger.error("Environment variable '" + key + "' must be set") + logger.error(f"Environment variable '{key}' must be set") return value @@ -20,7 +20,7 @@ def _parse_environment_variable(key: str, value: str) -> int | None: try: return int(value) except ValueError: - logger.error("Environment variable '" + key + "' must be an integer") + logger.error(f"Environment variable '{key}' must be an integer") def main(): signal.signal(signal.SIGTERM, _handle_exit) diff --git a/app/server.py b/app/server.py index 4565bf0..0f4bec0 100644 --- a/app/server.py +++ b/app/server.py @@ -36,5 +36,5 @@ class Server: def serve(self): handler_class = handler.generate_class(self._response_callback) server = HTTPServer((self._host, self._port), handler_class) - logger.info("Listening on " + self._host + ":" + str(self._port)) + logger.info(f"Listening on {self._host}:{self._port}") server.serve_forever() \ No newline at end of file