Adityadn commited on
Commit
b3ad3a9
Β·
verified Β·
1 Parent(s): ecce711

Update calculate.py

Browse files
Files changed (1) hide show
  1. calculate.py +65 -65
calculate.py CHANGED
@@ -1,65 +1,65 @@
1
- from flask import Flask, request, redirect, session, url_for
2
- from data.static import generate as sg
3
- from data.dynamic import generate as dg
4
-
5
- import os
6
-
7
- app = Flask(__name__)
8
- app.secret_key = "secret_key_aman_diganti"
9
-
10
- # Data login hardcoded
11
- VALID_USER = os.getenv("VALID_USER")
12
- VALID_PASS = os.getenv("VALID_PASS")
13
-
14
- # Middleware: Cek login sebelum semua request (kecuali /login dan /static file)
15
- @app.before_request
16
- def require_login():
17
- allowed_routes = ["login", "static"]
18
- if request.endpoint not in allowed_routes and "user" not in session: return redirect(url_for("login"))
19
-
20
- # Form login
21
- @app.route("/login", methods=["GET", "POST"])
22
- def login():
23
- if request.method == "POST":
24
- user = request.form.get("username")
25
- password = request.form.get("password")
26
- if user == VALID_USER and password == VALID_PASS:
27
- session["user"] = user
28
- return redirect(url_for("home"))
29
- return "<h3>Login gagal!</h3><a href='/login'>Coba lagi</a>"
30
-
31
- return """
32
- <h2>Login</h2>
33
- <form method='post'>
34
- Username: <input name='username'><br>
35
- Password: <input name='password' type='password'><br>
36
- <input type='submit' value='Login'>
37
- </form>
38
- """
39
-
40
- # Logout
41
- @app.route("/logout")
42
- def logout():
43
- session.pop("user", None)
44
- return redirect(url_for("login"))
45
-
46
- # Halaman utama
47
- @app.route("/")
48
- def home():
49
- return """
50
- <h2>Halaman Utama</h2>
51
- <a href='/static/7'>Static 7 Hari</a><br>
52
- <a href='/dynamic'>Dynamic</a><br>
53
- <a href='/logout'>Logout</a>
54
- """
55
-
56
- @app.route("/static")
57
- def static_page(): return f"""<a href="/">← Kembali</a>{sg(90, request.args.get("img"))}"""
58
-
59
- @app.route("/static/<int:days>")
60
- def static_pages(days): return f"""<a href="/">← Kembali</a>{sg(days, request.args.get("img"))}"""
61
-
62
- @app.route("/dynamic")
63
- def dynamic_page(): return f"""<a href="/">← Kembali</a>{dg(request.args.get("img"))}"""
64
-
65
- if __name__ == "__main__": app.run(debug=True)
 
1
+ from flask import Flask, request, redirect, session, url_for
2
+ from data.static import generate as sg
3
+ from data.dynamic import generate as dg
4
+
5
+ import os
6
+
7
+ app = Flask(__name__)
8
+ app.secret_key = "secret_key_aman_diganti"
9
+
10
+ # Data login hardcoded
11
+ VALID_USER = os.getenv("VALID_USER")
12
+ VALID_PASS = os.getenv("VALID_PASS")
13
+
14
+ # Middleware: Cek login sebelum semua request (kecuali /login dan /static file)
15
+ @app.before_request
16
+ def require_login():
17
+ allowed_routes = ["login", "static"]
18
+ if request.endpoint not in allowed_routes and "user" not in session: return redirect(url_for("login"))
19
+
20
+ # Form login
21
+ @app.route("/login", methods=["GET", "POST"])
22
+ def login():
23
+ if request.method == "POST":
24
+ user = request.form.get("username")
25
+ password = request.form.get("password")
26
+ if user == VALID_USER and password == VALID_PASS:
27
+ session["user"] = user
28
+ return redirect(url_for("home"))
29
+ return "<h3>Login gagal!</h3><a href='/login'>Coba lagi</a>"
30
+
31
+ return """
32
+ <h2>Login</h2>
33
+ <form method='post'>
34
+ Username: <input name='username'><br>
35
+ Password: <input name='password' type='password'><br>
36
+ <input type='submit' value='Login'>
37
+ </form>
38
+ """
39
+
40
+ # Logout
41
+ @app.route("/logout")
42
+ def logout():
43
+ session.pop("user", None)
44
+ return redirect(url_for("login"))
45
+
46
+ # Halaman utama
47
+ @app.route("/")
48
+ def home():
49
+ return """
50
+ <h2>Halaman Utama</h2>
51
+ <a href='/static/7'>Static 7 Hari</a><br>
52
+ <a href='/dynamic'>Dynamic</a><br>
53
+ <a href='/logout'>Logout</a>
54
+ """
55
+
56
+ @app.route("/static")
57
+ def static_page(): return f"""<a href="/">← Kembali</a>{sg(90, request.args.get("img"))}"""
58
+
59
+ @app.route("/static/<int:days>")
60
+ def static_pages(days): return f"""<a href="/">← Kembali</a>{sg(days, request.args.get("img"))}"""
61
+
62
+ @app.route("/dynamic")
63
+ def dynamic_page(): return f"""<a href="/">← Kembali</a>{dg(request.args.get("img"))}"""
64
+
65
+ if __name__ == "__main__": app.run(host=os.getenv("HOST") or "0.0.0.0", port=os.getenv("PORT") or 8501)