from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler from threading import Thread from datetime import datetime from models import BrowserEvent class MyHandler(BaseHTTPRequestHandler): def do_POST(self): time = datetime.utcfromtimestamp(int(self.headers["time"]) / 1000.) if self.headers["url"] == "null": url, title = None, None else: url, title = (self.headers["url"].decode("utf8"), self.headers["title"].decode("utf8")) event = BrowserEvent(time=time, url=url, title=title) self.server.logger.info(event) self.send_response(202) self.end_headers() return def log_request(self, code): pass class MyServer(HTTPServer): def __init__(self, addr, handler, logger): HTTPServer.__init__(self, addr, handler) self.logger = logger class ServerThread(Thread): def __init__(self, logger): Thread.__init__(self) self.server = MyServer(("localhost", 8080), MyHandler, logger) def run(self): self.server.serve_forever() def stop(self): self.server.shutdown()