From d8c6fb0d356e427f81966e548df55dbebbb58457 Mon Sep 17 00:00:00 2001 From: Sven Slootweg Date: Sun, 23 Sep 2012 00:12:56 +0200 Subject: [PATCH] Make sure that all data is in unicode --- app.py | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/app.py b/app.py index c021a86..8169526 100644 --- a/app.py +++ b/app.py @@ -1,4 +1,4 @@ -import subprocess, datetime, time +import subprocess, datetime, time, sys try: import json @@ -35,6 +35,12 @@ def get_first(options): else: return options[0] +def unicodedammit(input_string): + if isinstance(input_string, str): + return input_string.decode('utf-8') + else: + return input_string + def whois(domain): raw, result = pythonwhois.whois(domain) @@ -49,14 +55,14 @@ def whois(domain): emails = result['emails'] nameservers = result['name_servers'] - return raw, { - 'creation_date': creation_date, - 'expiration_date': expiration_date, - 'updated_date': updated_date, - 'registrar': registrar, - 'whois_server': whois_server, - 'emails': emails, - 'nameservers': nameservers + return unicodedammit(raw), { + 'creation_date': unicodedammit(creation_date), + 'expiration_date': unicodedammit(expiration_date), + 'updated_date': unicodedammit(updated_date), + 'registrar': unicodedammit(registrar), + 'whois_server': unicodedammit(whois_server), + 'emails': unicodedammit(emails), + 'nameservers': unicodedammit(nameservers) } @app.route('/', methods=["GET"]) @@ -114,7 +120,7 @@ def query_html(domain): else: retrieval_timestamp = datetime.datetime.fromtimestamp(int(retrieval_date)) - return render_template("result.tpl", domain=domain, retrieval_date=retrieval_timestamp.isoformat(), raw=unicode(raw), **result) + return render_template("result.tpl", domain=domain, retrieval_date=retrieval_timestamp.isoformat(), raw=raw, **result) @app.route('/query/json/', methods=["GET"])