]> git.siccegge.de Git - ksp-webtool.git/blobdiff - server.py
Properly decode UIDs (utf-8 / ignore)
[ksp-webtool.git] / server.py
index 6b4350e24548db38f7940efc0c82e5016e3454fd..40dd3de5327c3e6410a4e53fe5f5fc3bb8b538d0 100644 (file)
--- a/server.py
+++ b/server.py
@@ -4,26 +4,33 @@ import hashlib
 import pgpdump
 import glob
 import base64
+import os.path
+import math
 
+basedir = '.'
 app = Flask(__name__)
 
 @app.template_filter('base64')
 def base64_filter(arg):
     return base64.b64encode(arg)
 
+@app.template_filter('log2')
+def log2_filter(arg):
+    return int(math.log(arg, 2) + 1)
+
 @app.route("/pks/add", methods=['POST'])
 def add():
     keytext = request.form['keytext']
     pgp = pgpdump.AsciiData(keytext)
     fingerprint = pgp.packets().next().fingerprint
-    with open('data/%s.asc' % fingerprint, 'w') as f:
+    with open(os.path.join(basedir, 'data/%s.asc' % fingerprint), 'w') as f:
         f.write(keytext)
     return Response("OK", mimetype="text/plain")
 
 @app.route('/')
 def index():
     result = dict()
-    for entry in glob.glob('data/*.asc'):
+    for entry in glob.glob(os.path.join(basedir, 'data/*.asc')):
         pgp = pgpdump.AsciiData(file(entry).read())
         uids = []
         photoids = []
@@ -44,12 +51,17 @@ def index():
 @app.route('/download/')
 def download():
     result = []
-    for entry in glob.glob('data/*.asc'):
+    for entry in glob.glob(os.path.join(basedir, 'data/*.asc')):
         with open(entry) as f:
             result.append(f.read())
 
     return Response('\n'.join(result), mimetype='application/pgp')
     
+@app.route('/fingerprints/')
+def fingerprints():
+    return Response('\n'.join([ i.split('/')[-1][:-4] for i in
+                                glob.glob(os.path.join(basedir, 'data/*.asc')) ]) + '\n',
+                    mimetype='text/plain')
 
 if __name__ == "__main__":
     app.run(debug=True, port=11371)