From 1b1c13d22aaa7a7a2d334dde5783e5632fa572fa Mon Sep 17 00:00:00 2001 From: Thibaut Horel Date: Wed, 9 Jul 2014 08:53:42 -0400 Subject: Logging of browser events --- browserlogger.py | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 browserlogger.py (limited to 'browserlogger.py') diff --git a/browserlogger.py b/browserlogger.py new file mode 100644 index 0000000..24f961d --- /dev/null +++ b/browserlogger.py @@ -0,0 +1,45 @@ +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() -- cgit v1.2.3-70-g09d2