|
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 |
|
from data.data import default_hari |
|
|
|
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(int(request.args.get("d") or default_hari), request.args.get("img"))}""" |
|
|
|
if __name__ == "__main__": app.run(host=os.getenv("HOST") or "0.0.0.0", port=os.getenv("PORT") or 8501) |
|
|