This commit is contained in:
parent
7172f448d6
commit
29a0a128fb
@ -12,6 +12,6 @@ COPY . /app
|
||||
VOLUME /data
|
||||
|
||||
ENTRYPOINT ["python3"]
|
||||
CMD ["main.py"]
|
||||
CMD ["server.py"]
|
||||
|
||||
FROM builder as dev-envs
|
6
gift.py
6
gift.py
@ -13,7 +13,7 @@ nbcookie = os.getenv('cookie')
|
||||
cookies = {"namebase-main": nbcookie}
|
||||
nb_endpoint = "https://www.namebase.io/"
|
||||
|
||||
max_price = 4 # Max price to buy a domain at (in HNS)
|
||||
max_price = 5 # Max price to buy a domain at (in HNS)
|
||||
|
||||
|
||||
def gift(name,email,referer, ip):
|
||||
@ -104,6 +104,10 @@ def gift(name,email,referer, ip):
|
||||
# Add this name to gifts record
|
||||
gifts[-1]['domain'] = domain
|
||||
|
||||
# Save the file
|
||||
with open(path, 'w') as f:
|
||||
json.dump(gifts, f)
|
||||
|
||||
|
||||
|
||||
send_name = requests.post(nb_endpoint + "/api/gift/" + domain.strip(),headers=headers,data=json.dumps(params), cookies=cookies)
|
||||
|
43
main.py
43
main.py
@ -3,6 +3,7 @@ import os
|
||||
import dotenv
|
||||
import requests
|
||||
import gift
|
||||
import json
|
||||
|
||||
app = Flask(__name__)
|
||||
dotenv.load_dotenv()
|
||||
@ -60,16 +61,46 @@ def send_wallet(token):
|
||||
address = requests.get('https://nathan.woodburn.au/.well-known/wallets/'+token).text
|
||||
return make_response(address, 200, {'Content-Type': 'text/plain'})
|
||||
|
||||
@app.route('/stats')
|
||||
def stats():
|
||||
# Read the file
|
||||
path = '/data/gifts.json'
|
||||
if os.getenv('local') == 'true':
|
||||
path = './gifts.json'
|
||||
|
||||
# Load file
|
||||
gifts = []
|
||||
if os.path.isfile(path):
|
||||
with open(path, 'r') as f:
|
||||
gifts = json.load(f)
|
||||
|
||||
# Loop through gifts
|
||||
referals = {}
|
||||
for gift in gifts:
|
||||
if gift['referer'] not in referals:
|
||||
referals[gift['referer']] = 1
|
||||
else:
|
||||
referals[gift['referer']] += 1
|
||||
|
||||
statsHTML = 'Total gifts: ' + str(len(gifts)) + '<br><br>'
|
||||
statsHTML += 'Referals:<br>'
|
||||
for referal in referals:
|
||||
statsHTML += referal + ': ' + str(referals[referal]) + '<br>'
|
||||
|
||||
|
||||
|
||||
|
||||
return render_template('stats.html',address=address,stats=statsHTML)
|
||||
|
||||
@app.route('/<path:path>')
|
||||
def catch_all(path):
|
||||
# If file exists, load it
|
||||
if os.path.isfile('templates/' + path):
|
||||
return render_template(path)
|
||||
# # If file exists, load it
|
||||
# if os.path.isfile('templates/' + path):
|
||||
# return render_template(path)
|
||||
|
||||
# Try with .html
|
||||
if os.path.isfile('templates/' + path + '.html'):
|
||||
return render_template(path + '.html')
|
||||
# # Try with .html
|
||||
# if os.path.isfile('templates/' + path + '.html'):
|
||||
# return render_template(path + '.html')
|
||||
return redirect('/')
|
||||
|
||||
# 404 catch all
|
||||
|
105
templates/stats.html
Normal file
105
templates/stats.html
Normal file
@ -0,0 +1,105 @@
|
||||
<!DOCTYPE html>
|
||||
<html data-bs-theme="light" lang="en-au">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
|
||||
<title>Home - Woodburn Faucet</title>
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:image" content="https://faucet.woodburn.au/assets/img/android-chrome-512x512.png">
|
||||
<meta property="og:description" content="Woodburn Faucet
|
||||
Claim a free Handshake domain">
|
||||
<meta name="twitter:title" content="Woodburn Faucet">
|
||||
<meta property="og:image" content="https://faucet.woodburn.au/assets/img/android-chrome-512x512.png">
|
||||
<meta property="og:type" content="website">
|
||||
<meta name="description" content="Woodburn Faucet
|
||||
Claim a free Handshake domain">
|
||||
<meta property="og:title" content="Woodburn Faucet">
|
||||
<meta name="twitter:description" content="Woodburn Faucet
|
||||
Claim a free Handshake domain">
|
||||
<link rel="apple-touch-icon" type="image/png" sizes="180x180" href="assets/img/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="assets/img/favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="assets/img/favicon-16x16.png" media="(prefers-color-scheme: dark)">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="assets/img/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="assets/img/favicon-32x32.png" media="(prefers-color-scheme: dark)">
|
||||
<link rel="icon" type="image/png" sizes="180x180" href="assets/img/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="192x192" href="assets/img/android-chrome-192x192.png">
|
||||
<link rel="icon" type="image/png" sizes="512x512" href="assets/img/android-chrome-512x512.png">
|
||||
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Inter:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800&display=swap">
|
||||
<link rel="stylesheet" href="assets/fonts/material-icons.min.css">
|
||||
</head>
|
||||
|
||||
<body style="background: rgb(39,38,46);">
|
||||
<nav class="navbar navbar-expand-md sticky-top py-3 navbar-dark" id="mainNav">
|
||||
<div class="container"><a class="navbar-brand d-flex align-items-center" href="/"><img src="assets/img/favicon.svg" width="50em"><span> Woodburn Faucet</span></a><button class="navbar-toggler" data-bs-toggle="collapse"><span class="visually-hidden">Toggle navigation</span><span class="navbar-toggler-icon"></span></button></div>
|
||||
</nav>
|
||||
<header class="bg-dark" style="background: rgb(39, 38, 46);">
|
||||
<div class="container pt-4 pt-xl-5">
|
||||
<div class="row pt-5">
|
||||
<div class="col-md-8 col-xl-6 text-center text-md-start mx-auto" style="margin-bottom: 50px;">
|
||||
<div class="text-center">
|
||||
<p class="fw-bold text-success mb-2">Nathan.Woodburn/</p>
|
||||
<h1 class="fw-bold">Woodburn Faucet Stats</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-lg-10 mx-auto">
|
||||
<div class="text-center position-relative" style="display: block;flex-wrap: wrap;justify-content: flex-end;">
|
||||
<h2 style="width: 100%;">{{stats | safe}}</h2>
|
||||
<p style="margin-bottom: 75px;">If you need any help with your domain you can ask in the <a href="https://discord.gg/namebase-664247448469897267" target="_blank">Namebase discord server</a> or by emailing my at <a href="mailto:faucet@nathan.woodburn.au">faucet@nathan.woodburn.au</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section style="margin-top: 50px;">
|
||||
<div style="text-align: center;">
|
||||
<h3>Donate to fund the faucet</h3>
|
||||
<h4>{{address}}</h4>
|
||||
</div>
|
||||
</section>
|
||||
<section style="background: #27262e;">
|
||||
<div class="container bg-dark py-5">
|
||||
<div class="row">
|
||||
<div class="col-md-8 col-xl-6 text-center mx-auto">
|
||||
<p class="fw-bold text-success mb-2">Our Services</p>
|
||||
<h3 class="fw-bold">What we can do for you</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="py-5 p-lg-5">
|
||||
<div class="row row-cols-1 row-cols-md-2 mx-auto" style="max-width: 900px;">
|
||||
<div class="col mb-5">
|
||||
<div class="card shadow-sm">
|
||||
<div class="card-body px-4 py-5 px-md-5">
|
||||
<div class="bs-icon-lg d-flex justify-content-center align-items-center mb-3 bs-icon" style="top: 1rem;right: 1rem;position: absolute;"><i class="material-icons text-success">web</i></div>
|
||||
<h5 class="fw-bold card-title">HNS Hosting</h5>
|
||||
<p class="text-muted card-text mb-4">Providing website hosting for Handshake domains. Wordpress sites or static html sites.</p><a class="btn btn-primary shadow" role="button" target="_blank" href="https://hnshosting.au">Learn more</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col mb-5">
|
||||
<div class="card shadow-sm">
|
||||
<div class="card-body px-4 py-5 px-md-5">
|
||||
<div class="bs-icon-lg d-flex justify-content-center align-items-center mb-3 bs-icon" style="top: 1rem;right: 1rem;position: absolute;"><i class="material-icons text-success">dns</i></div>
|
||||
<h5 class="fw-bold card-title">Woodburn Registry</h5>
|
||||
<p class="text-muted card-text mb-4">Free Handshake compatible DNS server. Also provides free SLDs for testing</p><a class="btn btn-primary shadow" role="button" href="https://reg.woodburn.au" target="_blank">Learn more</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<footer class="bg-dark">
|
||||
<div class="container py-4 py-lg-5">
|
||||
<hr>
|
||||
<div class="text-muted d-flex justify-content-between align-items-center pt-3">
|
||||
<p class="mb-0 copyright">Copyright © 2023 Nathan.Woodburn/</p>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script src="assets/js/script.min.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user