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"])