import json import threading from http.server import HTTPServer, BaseHTTPRequestHandler import logging class HookHandler(BaseHTTPRequestHandler): def do_GET(self): if self.path == '/status': self.send_response(200) self.send_header('Content-Type', 'application/json') self.end_headers() self.wfile.write(json.dumps({'status': 'ok'}).encode('utf-8')) else: self.send_response(404) self.end_headers() def log_message(self, format, *args): logging.info("Hook API: " + format % args) class HookServer: def __init__(self, app, port=8999): self.app = app self.port = port self.server = None self.thread = None def start(self): if not getattr(self.app, 'test_hooks_enabled', False): return self.server = HTTPServer(('127.0.0.1', self.port), HookHandler) self.thread = threading.Thread(target=self.server.serve_forever, daemon=True) self.thread.start() logging.info(f"Hook server started on port {self.port}") def stop(self): if self.server: self.server.shutdown() self.server.server_close() if self.thread: self.thread.join() logging.info("Hook server stopped")