From c726525c8ed5b212928c472526bf19a160cdabc0 Mon Sep 17 00:00:00 2001 From: "Troll (Hermes Agent)" Date: Tue, 4 Aug 2026 17:41:33 +0000 Subject: [PATCH] Add public kiosk page with QR/pricing cycle and configurable slide timing --- app.py | 92 +++++++++++++ static/qr-code.png | Bin 0 -> 61219 bytes templates/admin/dashboard.html | 3 +- templates/admin/settings.html | 13 ++ templates/kiosk.html | 244 +++++++++++++++++++++++++++++++++ 5 files changed, 351 insertions(+), 1 deletion(-) create mode 100755 static/qr-code.png create mode 100644 templates/kiosk.html diff --git a/app.py b/app.py index 3230861..8f7a82e 100644 --- a/app.py +++ b/app.py @@ -282,6 +282,32 @@ def get_refresh_seconds(): return val if val in (10, 20, 30) else 10 +def get_kiosk_cycle_seconds(): + """Return the kiosk slide cycle interval in seconds. 0 = static price list; 5+ cycles QR and pricing.""" + cfg = load_booth_settings() + try: + val = int(cfg.get('kiosk_cycle_seconds', 10)) + except (ValueError, TypeError): + val = 10 + if val == 0: + return 0 + return max(5, val) + + +def get_kiosk_mode(): + """Return 'cycle', 'qr', or 'prices' based on kiosk_cycle_seconds setting.""" + cfg = load_booth_settings() + try: + val = int(cfg.get('kiosk_cycle_seconds', 10)) + except (ValueError, TypeError): + val = 10 + if val == -1: + return 'qr' + if val == 0: + return 'prices' + return 'cycle' + + def get_hermes_api_key(): """ Return the effective Hermes API key. @@ -847,6 +873,49 @@ def admin_pricing(): return render_template('admin/pricing.html', fixed=fixed, customs=customs) +@app.route('/kiosk') +def kiosk(): + """ + Public kiosk display page for the booth. + Shows open/closed banner, pricing, and optionally cycles with a QR code. + Auto-refreshes so pricing updates are picked up quickly. + """ + cfg = load_booth_settings() + pricing = cfg.get('pricing', {}) + + fixed_keys = { + 'one_song': 'One Song', + 'both_songs': 'Both Songs', + 'wav_per_song': 'WAV files / song', + 'stems_per_song': 'STEM files / song' + } + price_items = [] + for key, label in fixed_keys.items(): + val = pricing.get(key, '').strip() + if val: + price_items.append({'label': label, 'price': val}) + for i in range(1, 6): + entry = pricing.get(f'custom_{i}') + if isinstance(entry, dict): + name = entry.get('name', '').strip() + price = entry.get('price', '').strip() + if name and price: + price_items.append({'label': name, 'price': price}) + + cycle_seconds = get_kiosk_cycle_seconds() + mode = get_kiosk_mode() + booth_open = get_booth_open() + + return render_template( + 'kiosk.html', + booth_open=booth_open, + price_items=price_items, + cycle_seconds=cycle_seconds, + mode=mode, + refresh_seconds=30 + ) + + @app.route('/admin/request/', methods=['GET', 'POST']) def admin_request(rid): """ @@ -1248,6 +1317,28 @@ def admin_settings(): flash(f'Dashboard auto-refresh set to {val} seconds.', 'success') return redirect(url_for('admin_settings')) + elif action == 'save_kiosk_cycle': + # Update kiosk slide cycle interval. Special values: + # -1 = show QR only, 0 = show pricing only, 5+ = cycle every N seconds. + raw = request.form.get('kiosk_cycle_seconds', '10').strip() + try: + val = int(raw) + except ValueError: + val = 10 + if val not in (-1, 0) and val < 5: + val = 5 + cfg = load_booth_settings() + cfg['kiosk_cycle_seconds'] = val + save_booth_settings(cfg) + if val == -1: + label = 'QR code only' + elif val == 0: + label = 'pricing only' + else: + label = f'cycle every {val} seconds' + flash(f'Kiosk mode set to {label}.', 'success') + return redirect(url_for('admin_settings')) + elif action == 'save_booth_open': # Toggle whether the public request form is accepting submissions. cfg = load_booth_settings() @@ -1327,6 +1418,7 @@ def admin_settings(): upload_path=str(upload_root), current_max_revisions=current_max_revisions, current_refresh_seconds=current_refresh_seconds, + current_kiosk_cycle_seconds=get_kiosk_cycle_seconds(), booth_open=booth_open, email_form=email_form, metadata={ diff --git a/static/qr-code.png b/static/qr-code.png new file mode 100755 index 0000000000000000000000000000000000000000..75bca74f7828ea999aae6b46bdd06277bd0e3a1b GIT binary patch literal 61219 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 Pu!62#Hot^5bb0(YpBjrx literal 0 HcmV?d00001 diff --git a/templates/admin/dashboard.html b/templates/admin/dashboard.html index d3624f0..398a360 100644 --- a/templates/admin/dashboard.html +++ b/templates/admin/dashboard.html @@ -110,8 +110,9 @@
- +
+ Kiosk Pricing Sales Settings diff --git a/templates/admin/settings.html b/templates/admin/settings.html index 7e64c87..297737b 100644 --- a/templates/admin/settings.html +++ b/templates/admin/settings.html @@ -269,6 +269,19 @@
+ +
+

Kiosk Display Mode

+

Set how the public /kiosk page cycles. Use -1 for QR only, 0 for pricing only, or 5+ seconds to cycle between them.

+
+ + + +

Examples: -1 = QR only, 0 = pricing only, 10 = swap every 10 seconds.

+ +
+
+

Hermes API Key

diff --git a/templates/kiosk.html b/templates/kiosk.html new file mode 100644 index 0000000..52e7389 --- /dev/null +++ b/templates/kiosk.html @@ -0,0 +1,244 @@ + + + + + + Trollgorithm Booth โ€” Kiosk + {% if refresh_seconds and refresh_seconds > 0 %} + + {% endif %} + + + +
+
+ {% if booth_open %} + +
Booth is Open โœ…
+ {% else %} + +
Booth is Closed โŒ
+ {% endif %} +
+ +
+ {% if mode == 'qr' %} +
+

Scan to Order

+ Scan to order +

Point your camera at the code to start your request.

+
+ {% elif mode == 'prices' %} +
+
+

Pricing

+ {% if price_items %} +
    + {% for item in price_items %} +
  • + {{ item.label }} + {{ item.price }} +
  • + {% endfor %} +
+ {% else %} +

Pricing coming soon. Ask the booth operator!

+ {% endif %} +
+
+ {% else %} +
+

Scan to Order

+ Scan to order +

Point your camera at the code to start your request.

+
+ + {% endif %} +
+ + {% if mode == 'cycle' %} + + + {% endif %} + + +
+ +