diff --git a/src/main.py b/src/main.py index 78ff53e..27b82c5 100644 --- a/src/main.py +++ b/src/main.py @@ -8,6 +8,7 @@ import logging import random import ipaddress import threading +import re from http.server import ThreadingHTTPServer, BaseHTTPRequestHandler log = logging.getLogger(__name__) @@ -139,6 +140,7 @@ class Updater: }, f, indent=2) def run(self): + interval = self.config.get("interval", 600) while True: try: self.detect_updates() @@ -146,12 +148,16 @@ class Updater: self.write_state() except Exception as e: log.exception(e) - time.sleep(10*60) + time.sleep(interval) class Handler(BaseHTTPRequestHandler): def do_GET(self): assert isinstance(self.server, WebServer) + if not re.fullmatch(r"/[a-zA-Z0-9._-]*", self.path): + self.send_response(404) + self.end_headers() + self.wfile.write(bytes("File not found", 'utf-8')) if self.path == '/': path = self.server.args.web + '/index.html' elif self.path == '/state':