|
from flask import Flask, request, redirect, session, url_for
|
|
from data.static import generate as sg
|
|
from data.dynamic import generate as dg
|
|
|
|
import os
|
|
|
|
app = Flask(__name__)
|
|
app.secret_key = "secret_key_aman_diganti"
|
|
|
|
|
|
VALID_USER = os.getenv("VALID_USER")
|
|
VALID_PASS = os.getenv("VALID_PASS")
|
|
|
|
|
|
@app.before_request
|
|
def require_login():
|
|
allowed_routes = ["login", "static"]
|
|
if request.endpoint not in allowed_routes and "user" not in session: return redirect(url_for("login"))
|
|
|
|
|
|
@app.route("/login", methods=["GET", "POST"])
|
|
def login():
|
|
if request.method == "POST":
|
|
user = request.form.get("username")
|
|
password = request.form.get("password")
|
|
print(user, VALID_USER, password, VALID_PASS)
|
|
if user == VALID_USER and password == VALID_PASS:
|
|
session["user"] = user
|
|
return redirect(url_for("home"))
|
|
return "<h3>Login gagal!</h3><a href='/login'>Coba lagi</a>"
|
|
|
|
return """
|
|
<h2>Login</h2>
|
|
<form method='post'>
|
|
Username: <input name='username'><br>
|
|
Password: <input name='password' type='password'><br>
|
|
<input type='submit' value='Login'>
|
|
</form>
|
|
"""
|
|
|
|
|
|
@app.route("/logout")
|
|
def logout():
|
|
session.pop("user", None)
|
|
return redirect(url_for("login"))
|
|
|
|
|
|
@app.route("/")
|
|
def home():
|
|
return """
|
|
<h2>Halaman Utama</h2>
|
|
<a href='/static/7'>Static 7 Hari</a><br>
|
|
<a href='/dynamic'>Dynamic</a><br>
|
|
<a href='/logout'>Logout</a>
|
|
"""
|
|
|
|
@app.route("/static")
|
|
def static_page(): return f"""<a href="/">β Kembali</a>{sg(90, request.args.get("img"))}"""
|
|
|
|
@app.route("/static/<int:days>")
|
|
def static_pages(days): return f"""<a href="/">β Kembali</a>{sg(days, request.args.get("img"))}"""
|
|
|
|
@app.route("/dynamic")
|
|
def dynamic_page(): return f"""<a href="/">β Kembali</a>{dg(request.args.get("img"))}"""
|
|
|
|
if __name__ == "__main__": app.run(host=os.getenv("HOST") or "0.0.0.0", port=os.getenv("PORT") or 8501, debug=True)
|
|
|