summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--browserlogger.py14
-rw-r--r--firefox-addon/lib/main.js5
-rw-r--r--firefox-addon/package.json7
-rw-r--r--models.py1
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__":