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" # Data login hardcoded VALID_USER = os.getenv("VALID_USER") VALID_PASS = os.getenv("VALID_PASS") # Middleware: Cek login sebelum semua request (kecuali /login dan /static file) @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")) # Form 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 "

Login gagal!

Coba lagi" return """

Login

Username:
Password:
""" # Logout @app.route("/logout") def logout(): session.pop("user", None) return redirect(url_for("login")) # Halaman utama @app.route("/") def home(): return """

Halaman Utama

Static 7 Hari
Dynamic
Logout """ @app.route("/static") def static_page(): return f"""← Kembali{sg(90, request.args.get("img"))}""" @app.route("/static/") def static_pages(days): return f"""← Kembali{sg(days, request.args.get("img"))}""" @app.route("/dynamic") def dynamic_page(): return f"""← Kembali{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)