diff options
| author | Thibaut Horel <thibaut.horel@gmail.com> | 2014-07-09 08:53:42 -0400 |
|---|---|---|
| committer | Thibaut Horel <thibaut.horel@gmail.com> | 2014-07-09 08:53:42 -0400 |
| commit | 1b1c13d22aaa7a7a2d334dde5783e5632fa572fa (patch) | |
| tree | 767a6710f829766c04bfda60e4cab4670a373458 /browserlogger.py | |
| parent | d2496696d4ca73b9a8a43a42f31959ad6dc18c7a (diff) | |
| download | tracker-1b1c13d22aaa7a7a2d334dde5783e5632fa572fa.tar.gz | |
Logging of browser events
Diffstat (limited to 'browserlogger.py')
| -rw-r--r-- | browserlogger.py | 45 |
1 files changed, 45 insertions, 0 deletions
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() |
