nictemplate/server.py
Nathan Woodburn afc91feee8
All checks were successful
Build Docker / Build Image (push) Successful in 20s
feat: Add newzealand to reserved tlds
2024-02-20 15:02:40 +11:00

68 lines
2.1 KiB
Python

from flask import Flask, make_response, redirect, request, jsonify, render_template, send_from_directory
import os
import dotenv
import requests
import datetime
app = Flask(__name__)
dotenv.load_dotenv()
not_for_sale = ['australia', 'newzealand']
@app.route('/assets/<path:path>')
def send_report(path):
return send_from_directory('templates/assets', path)
@app.route('/')
def index():
year = datetime.datetime.now().year
https_redirect="<script src=\"https://nathan.woodburn/https.js\"></script>"
# Get host from request
host = request.headers.get('host')
tld = host.split('.')[-1]
tld = tld.split(':')[0]
if tld == 'localhost' or tld == '1':
tld = 'freeconcept'
https_redirect = "<script>console.log('https.js not loaded on localhost')</script>"
if tld in not_for_sale:
return render_template('not_for_sale.html', tld=tld, https_redirect=https_redirect, year=year)
# Count sales
sales = requests.get('https://reg.woodburn.au/api?action=getMyStaked', headers={'Authorization': 'Bearer ' + os.getenv('reg_auth')})
sales = sales.json()
if 'data' not in sales:
if tld.startswith('xn--'):
tld = tld.encode('ascii').decode('idna')
return render_template('index.html', tld=tld, https_redirect=https_redirect, sales=0, year=year)
tld_sales = 0
sales = sales['data']
for sale in sales:
if sale['tld'] == tld:
tld_sales = sale['slds']
if tld.startswith('xn--'):
tld = tld.encode('ascii').decode('idna')
if tld_sales == 0:
not_for_sale.append(tld)
return render_template('not_for_sale.html', tld=tld, https_redirect=https_redirect, year=year)
return render_template('index.html', tld=tld, https_redirect=https_redirect, sales=tld_sales, year=year)
# 404 catch all
@app.errorhandler(404)
def not_found(e):
host = request.headers.get('host')
tld = host.split('.')[-1]
tld = tld.split(':')[0]
if tld == 'localhost' or tld == '1':
tld = 'example'
return render_template('404.html', tld=tld), 404
if __name__ == '__main__':
app.run(debug=False, port=5000, host='0.0.0.0')