functionalized the lookup
This commit is contained in:
parent
05d5b74544
commit
49acbf38dd
1 changed files with 24 additions and 27 deletions
51
chainlink.py
51
chainlink.py
|
@ -10,6 +10,14 @@ VERSION = '0.0.1'
|
||||||
app = Bottle()
|
app = Bottle()
|
||||||
|
|
||||||
|
|
||||||
|
def domainLookup(domain):
|
||||||
|
apibase = 'https://unstoppabledomains.com/api/v1/'
|
||||||
|
dnslookup = requests.get(apibase + domain)
|
||||||
|
domainJSON = json.loads(dnslookup.content)
|
||||||
|
print(domainJSON)
|
||||||
|
return domainJSON
|
||||||
|
|
||||||
|
|
||||||
@app.route("/")
|
@app.route("/")
|
||||||
def root():
|
def root():
|
||||||
host = request.get_header('host')
|
host = request.get_header('host')
|
||||||
|
@ -38,41 +46,30 @@ def root():
|
||||||
|
|
||||||
|
|
||||||
@app.route("/<domain>")
|
@app.route("/<domain>")
|
||||||
|
@app.route("/<domain>/")
|
||||||
@app.route("/<domain>/<action>")
|
@app.route("/<domain>/<action>")
|
||||||
def redirectDomain(domain, action=None):
|
def redirectDomain(domain, action=None):
|
||||||
apiurl = f'https://unstoppabledomains.com/api/v1/{domain}'
|
lookupResult = domainLookup(domain)
|
||||||
dnslookup = requests.get(apiurl)
|
redirect_url = lookupResult['ipfs']['redirect_domain']
|
||||||
|
html = lookupResult['ipfs']['html']
|
||||||
if action == 'redir':
|
if action == 'redir':
|
||||||
try:
|
try:
|
||||||
if dnslookup.status_code == 200:
|
if not redirect_url.startswith('http'):
|
||||||
body = json.loads(dnslookup.content)
|
redirect_url = "http://" + redirect_url
|
||||||
print(body)
|
response.status = 302
|
||||||
redirect_url = body['ipfs']['redirect_domain']
|
response.set_header('Location', redirect_url)
|
||||||
if not redirect_url.startswith('http'):
|
|
||||||
redirect_url = "http://" + redirect_url
|
|
||||||
response.status = 302
|
|
||||||
response.set_header('Location', redirect_url)
|
|
||||||
else:
|
|
||||||
return f'Error making call to {apiurl} for {domain}'
|
|
||||||
except KeyError:
|
except KeyError:
|
||||||
return f'Did not find a redirect for {domain}'
|
return f'Did not find a redirect for {domain}'
|
||||||
elif action is None or action == 'html':
|
elif action is None or action == 'html':
|
||||||
# TODO: clean this up by functionalizing this call.
|
response.status = 302
|
||||||
# It's basically the same as above
|
if not html.startswith('/ip'):
|
||||||
if dnslookup.status_code == 200:
|
ipfshash = "ipfs/" + html
|
||||||
body = json.loads(dnslookup.content)
|
else:
|
||||||
print(body)
|
ipfshash = html
|
||||||
response.status = 302
|
response.set_header('Location',
|
||||||
if not body['ipfs']['html'].startswith('/ip'):
|
f"https://cloudflare-ipfs.com/{ipfshash}")
|
||||||
ipfshash = "ipfs/" + body['ipfs']['html']
|
|
||||||
else:
|
|
||||||
ipfshash = body['ipfs']['html']
|
|
||||||
response.set_header('Location',
|
|
||||||
f"https://cloudflare-ipfs.com/{ipfshash}")
|
|
||||||
elif action == 'raw':
|
elif action == 'raw':
|
||||||
if dnslookup.status_code == 200:
|
return json2html.json2html.convert(json=lookupResult)
|
||||||
body = json.loads(dnslookup.content)
|
|
||||||
return json2html.json2html.convert(json=body)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
Loading…
Reference in a new issue