From 65128ee7a55e0f0b5997bb2932582a0a1a0ae779 Mon Sep 17 00:00:00 2001 From: Morgana Date: Sat, 3 Oct 2026 16:37:05 -0500 Subject: Implement eGuide --- app.py | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 101 insertions(+), 1 deletion(-) (limited to 'app.py') diff --git a/app.py b/app.py index 6a98763..af687e4 100644 --- a/app.py +++ b/app.py @@ -25,6 +25,99 @@ GUEST_CAPTCHA = Captcha.from_string( 5, "m...cena....m...ebneb.clm", ".........................", True ) +GUIDE_CAPTCHAS = { + "Layer 01": [ + Captcha.from_string(2, "a...", "...."), + Captcha.from_string(2, "aaa.", "01.."), + Captcha.from_string(2, "aaaa", "...."), + ], + "Layer 02": [ + Captcha.from_string(2, "b...", "...."), + Captcha.from_string(2, "b.b.", "0.1."), + Captcha.from_string(2, "bbbb", "00.."), + ], + "Layer 03": [ + Captcha.from_string(2, "c...", "...."), + Captcha.from_string(2, "c...", ".11."), + Captcha.from_string(2, "c.c.", "1.1."), + ], + "Layer 04": [ + Captcha.from_string(2, "ac..", "01.."), + Captcha.from_string(2, "ab..", "...."), + Captcha.from_string(2, "bba.", "...."), + ], + "Layer 05": [ + Captcha.from_string(2, "d...", "1..."), + Captcha.from_string(2, "d...", "..1."), + Captcha.from_string(2, "d..d", "...1"), + ], + "Layer 06": [ + Captcha.from_string(3, "c.c.c.c.c", "........."), + Captcha.from_string(3, "c.b...b.a", "........."), + Captcha.from_string(3, "d...d...d", "........."), + ], + "Layer 11": [ + Captcha.from_string(3, "m.m......", "10.10.00."), + Captcha.from_string(3, "m.......m", "10.10.01."), + Captcha.from_string(3, "m.m...m.m", "1.1...2.2"), + ], + "Layer 12": [ + Captcha.from_string(3, "m.m...n.n", "1.1...2.2"), + Captcha.from_string(3, "m.n...n.m", "1.1...2.2"), + Captcha.from_string(3, "m.m...n.n", "1.2....0."), + ], + "Layer 13": [ + Captcha.from_string(4, "m....m..........", "11..10.........."), + Captcha.from_string(4, "mmnn......cc...c", "01230...0...0..."), + Captcha.from_string(4, "mn............nm", "1...11.........."), + Captcha.from_string(4, "mn..nm........nm", "................"), + ], + "Layer 14": [ + Captcha.from_string(4, "m..a.m.........d", "11..10.......0.."), + Captcha.from_string(4, "m..a.m.........d", "11..10.......2.."), + Captcha.from_string(4, "m..a.md........d", "11..10.......0.."), + Captcha.from_string(4, "m.bn.mc.....n..d", "11..10.......2.."), + ], + "Layer 21": [ + Captcha.from_string(3, "....v....", "0101.10.0"), + Captcha.from_string(3, "....v....", "1101.10.0"), + Captcha.from_string(3, "v.......v", "1101020.."), + ], + "Layer 22": [ + Captcha.from_string(3, "v....v.v.", "0......1."), + Captcha.from_string(3, "vm.....m.", ".1.....0."), + Captcha.from_string(3, "v..m.m.v.", ".....1.0."), + ], + "Layer 23": [ + Captcha.from_string(3, "....l....", "...010..."), + Captcha.from_string(3, ".l..l..l.", ".1..0..1."), + Captcha.from_string(3, "..l.l.l..", ".1011...."), + ], + "Layer 24": [ + Captcha.from_string(3, "...cl...d", "....1...."), + Captcha.from_string(3, "l...d...l", "........."), + Captcha.from_string(3, "l...a.b.l", "........."), + ], + "Layer 31": [ + Captcha.from_string(3, "r...c...r", "31.312.1."), + Captcha.from_string(3, "r.b.c.b.r", "........."), + Captcha.from_string(3, "raa.d.a.r", "........."), + ], + "Layer 32": [ + Captcha.from_string(3, "....e....", "0001020.0"), + Captcha.from_string(3, "....e....", "....2...."), + Captcha.from_string(3, "e.e...e.e", "........."), + ], + "Layer 33": [ + Captcha.from_string(3, "ebebb.e.e", ".1.23...."), + Captcha.from_string(3, "eaeac.e.e", "........."), + Captcha.from_string(3, "eaebede.e", "........."), + ], + "Layer 34": [ + Captcha.from_string(4, "er...em..me.dbre", "................"), + ], +} + def get_db(): if "db" not in g: @@ -45,7 +138,9 @@ def has_captcha(captcha_id): def add_captcha(captcha_id): if "captcha" not in session: session["captcha"] = [] - session["captcha"].append(captcha_id) + if captcha_id not in session["captcha"]: + session["captcha"].append(captcha_id) + session.modified = True app = Flask(__name__) @@ -134,6 +229,11 @@ def guest_login(): return render_template("guest.html", captcha=GUEST_CAPTCHA) +@app.route("/eguide") +def eguide(): + return render_template("eguide.html", captchas=GUIDE_CAPTCHAS) + + @app.route("/logout") def logout(): if "username" in session: -- cgit v1.3.1