From b4a2e939e347f743764912f09c7a3395ce37268d Mon Sep 17 00:00:00 2001 From: Thibaut Horel Date: Thu, 10 Jul 2014 21:50:43 -0400 Subject: Adding browser key feature, better handling unicode --- browserlogger.py | 14 +++++++++----- firefox-addon/lib/main.js | 5 +++-- firefox-addon/package.json | 7 +++++++ models.py | 1 + 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/browserlogger.py b/browserlogger.py index 5466880..1bd216d 100644 --- a/browserlogger.py +++ b/browserlogger.py @@ -10,14 +10,18 @@ class MyHandler(BaseHTTPRequestHandler): def do_POST(self): length = int(self.headers['Content-Length']) - data = parse_qs(self.rfile.read(length).decode('utf-8')) - time = datetime.utcfromtimestamp(int(data["time"][0]) / 1000.) + data = parse_qs(self.rfile.read(length)) + data = {key: data[key][0].decode("utf8") for key in data.iterkeys()} + time = datetime.utcfromtimestamp(int(data["time"]) / 1000.) if data["url"][0] == "null": url, title = None, None else: - url, title = data["url"][0], data["title"][0] - event = BrowserEvent(time=time, url=url, - title=title) + try: + url, title = (data["url"], data["title"]) + except KeyError: + print data + event = BrowserEvent(time=time, url=url, title=title, + browser_key=data["key"]) self.server.logger.info(event) self.send_response(202) self.end_headers() diff --git a/firefox-addon/lib/main.js b/firefox-addon/lib/main.js index c5446f2..cc8845e 100644 --- a/firefox-addon/lib/main.js +++ b/firefox-addon/lib/main.js @@ -7,9 +7,10 @@ var XMLHttpRequest = require("sdk/net/xhr").XMLHttpRequest; function log(url, title){ var xhr = new XMLHttpRequest(); xhr.open("POST", prefs.callbackUrl); - var data = "url=" + url; + var data = "url=" + encodeURIComponent(url); data += "&time=" + Date.now(); - data += "&title=" + title; + data += "&title=" + encodeURIComponent(title); + data += "&key=" + encodeURIComponent(prefs.key); xhr.send(data); } diff --git a/firefox-addon/package.json b/firefox-addon/package.json index af6f529..6c89753 100644 --- a/firefox-addon/package.json +++ b/firefox-addon/package.json @@ -12,5 +12,12 @@ "title": "CallbackĀ URL", "description": "URL to be notified on page load/show.", "value": "http://localhost:8080" + }, + { + "name": "key", + "type": "string", + "title": "Browser key", + "description": "Key to identify the browser.", + "value": "firefox" }] } diff --git a/models.py b/models.py index fcdb0a3..8933595 100644 --- a/models.py +++ b/models.py @@ -93,6 +93,7 @@ class BrowserEvent(Event, Base): url = Column(String) title = Column(String) + browser_key = Column(String) if __name__ == "__main__": -- cgit v1.2.3-70-g09d2