bring/app.py

74 lines
1.9 KiB
Python

import json
import random
from flask import Flask, redirect, render_template
from waitress import serve
reader = open("users.json", "r")
data = json.loads(reader.read())
reader.close()
users = data["users"]
websites = data["websites"]
app = Flask(__name__, static_url_path='',
static_folder='web/static',
template_folder='web/templates')
@app.route("/<name>/next")
def getNextUser(name):
if(not name in users):
return render_template('404.html'), 404
nextUserId = users.index(name) + 1
if(nextUserId == len(users)):
nextUserId = 0
return redirect(websites[nextUserId])
@app.route("/<name>/previous")
def getPreviousUser(name):
if(not name in users):
return render_template('404.html'), 404
nextUserId = users.index(name) - 1
if(nextUserId == -1):
nextUserId = len(users) -1
print(nextUserId)
return redirect(websites[nextUserId])
@app.route("/<name>")
def getUserWebsite(name):
if(not name in users):
return render_template('404.html'), 404
return redirect(websites[users.index(name)])
@app.route("/users")
def listUsers():
thingToGive = ""
for user in users:
thingToGive = thingToGive + f"<a href=\"{websites[users.index(user)]}\" target=\"_blank\">{user}</a><br>"
return "<html><head><link rel=\"stylesheet\" type=\"text/css\" href=\"/css/users.css\"></head><body>"+ thingToGive+"</body></html>"
@app.route("/random")
def getRandomUser():
randomNumber = random.randint(0, len(users) -1 )
return redirect(websites[randomNumber])
@app.route("/api")
def getJson():
return data
@app.route("/")
def home():
return render_template('index.html')
@app.errorhandler(404)
def pageNotFound(e):
return render_template('404.html'), 404
if __name__ == '__main__':
print("Running on http://127.0.0.1:9932")
serve(app, host='127.0.0.1', port=9932)