diff web/templog.py @ 586:87c20b8c5472 default master

port to python3
author Matt Johnston <matt@ucc.asn.au>
date Mon, 09 Sep 2019 22:24:10 +0800
parents 8441916e3095
children
line wrap: on
line diff
--- a/web/templog.py	Mon Sep 09 22:23:45 2019 +0800
+++ b/web/templog.py	Mon Sep 09 22:24:10 2019 +0800
@@ -6,11 +6,9 @@
 import zlib
 from datetime import datetime, timedelta
 import time
-import urllib
+import urllib.request, urllib.parse, urllib.error
 import sys
-import os
 import traceback
-import fcntl
 import hashlib
 
 import bottle
@@ -35,16 +33,16 @@
 
 @route('/update', method='post')
 def update():
-    js_enc = request.forms.data
+    js_enc = request.forms.data.strip().encode()
     mac = request.forms.hmac
 
-    h = hmac.new(config.HMAC_KEY, js_enc.strip(), hashlib.sha256).hexdigest()
+    h = hmac.new(config.HMAC_KEY.encode(), js_enc, hashlib.sha256).hexdigest()
     if h != mac:
         raise bottle.HTTPError(code = 403, output = "Bad key")
 
     js = zlib.decompress(binascii.a2b_base64(js_enc))
 
-    params = json.loads(js)
+    params = json.loads(js.decode())
 
     log.parse(params)
 
@@ -59,7 +57,7 @@
     return log.graph_png(start_epoch, length_minutes * 60)
 
 def encode_data(data, mimetype):
-    return 'data:%s;base64,%s' % (mimetype, binascii.b2a_base64(data).rstrip())
+    return 'data:%s;base64,%s' % (mimetype, binascii.b2a_base64(data).decode().rstrip())
 
 @route('/graph.png')
 def graph():
@@ -108,7 +106,7 @@
         csrf_blob = secure.get_csrf_blob(),
         allowed = allowed,
         cookie_hash = cookie_hash,
-        email = urllib.quote(config.EMAIL))
+        email = urllib.parse.quote(config.EMAIL))
 
 def get_request_zoom():
     """ returns (length, end) tuple.
@@ -151,7 +149,7 @@
     request.query.replace('length', minutes)
     request.query.replace('end', endstr)
 
-    urlparams = urllib.urlencode(request.query)
+    urlparams = urllib.parse.urlencode(request.query)
     graphdata = encode_data(make_graph(minutes, endstr), 'image/png')
     return bottle.template('top', urlparams=urlparams,
                     end = endstr,