From 3895fcb8ba75a87e231bf29905f796db42b7c438 Mon Sep 17 00:00:00 2001 From: Alex Kelly Date: Fri, 3 Jan 2020 16:17:43 -0500 Subject: [PATCH] Converted to bottle, added proper redirect --- chainlink.py | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/chainlink.py b/chainlink.py index bb1a6c6..c8e087b 100755 --- a/chainlink.py +++ b/chainlink.py @@ -1,26 +1,39 @@ #!/usr/bin/env python """Utilize crypto domains DNS and either redirect, or display information.""" -from flask import Flask, redirect, url_for +from bottle import Bottle, run, response, request import json import requests VERSION = '0.0.1' -app = Flask(__name__) +app = Bottle() @app.route("/") def root(): - return 'There is nothing here' + host = request.get_header('host') + return f'specify domain in URL like {host}/domain.crypto' -@app.route("/") +@app.route("/") def showdomain(domain): - redirect = requests.get(f'https://unstoppabledomains.com/api/v1/{domain}') - if redirect.status_code == 200: - body = json.loads(redirect.content) - redirect_url = body['ipfs']['redirect_domain'] - return f'

' + apiurl =f'https://unstoppabledomains.com/api/v1/{domain}' + redirect = requests.get(apiurl) + try: + if redirect.status_code == 200: + body = json.loads(redirect.content) + print(body) + redirect_url = body['ipfs']['redirect_domain'] + # TODO: Add handler for the ipfs vs redirect +# if body['ipfs']['html']: +# print('We have html') + response.status = 302 + response.set_header('Location',redirect_url) + else: + return f'Error making call to {apiurl} for {domain}' + except KeyError: + return f'Did not find a redirect for {domain}' + if __name__ == "__main__": - app.run() + run(app, host='localhost', port='5000', reloader=True)