Files
Mysteryhelfer-web/app/app.py
2025-07-22 10:06:14 +02:00

75 lines
2.9 KiB
Python

# app.py
import streamlit as st
from tools import *
st.set_page_config(
page_title="tebarius mysteryhelfer web",
page_icon="./favicon.ico", # Alternativ: "favicon.ico" (Pfad als String)
layout="wide"
)
st.logo('./logo.png', size='large')
# Optional: Standard für den Session State setzen
if 'letzte_aktion' not in st.session_state:
st.session_state['letzte_aktion'] = None
if 'output_text' not in st.session_state:
st.session_state['output_text'] = ('Um den HILFE-Text zu einzelnen Funktionen aufzurufen bitte die Funktion'
' mit leerem Eingabefeld aufrufen.')
if 'show_map' not in st.session_state:
st.session_state['show_map'] = False
if 'map_data' not in st.session_state:
st.session_state['map_data'] = None
logo_col, title_col = st.columns([1,5])
with logo_col:
st.image('./logo-mit-tb.png', width=200)
with title_col:
st.write(' \n \n# tebarius web-Mysteryhelfer')
# Eingabefeld im Hauptbereich
input_text = st.text_area('Gib deinen Text hier ein und wähle eine Funktion im Menü:', height=150)
# --- Sidebar: Buttons selektieren und Aktion setzen ---
st.sidebar.header("Funktionen")
if st.sidebar.button(label='Ceasarchiffre (all)', use_container_width=True):
st.session_state['output_text'] = cesar_all(input_text)
st.session_state['letzte_aktion'] = 'cesar_all'
st.session_state['show_map'] = False
if st.sidebar.button('BW,BWW,... ermitteln', use_container_width=True):
st.session_state['output_text'] = buchstabenwortwert(input_text)
st.session_state['letzte_aktion'] = 'bbw'
st.session_state['show_map'] = False
# Funktion, die eine Karte erzeugt
if st.sidebar.button('Mit Karte anzeigen'):
output_text, map_data = funktion_mit_karte(input_text)
st.session_state['output_text'] = output_text
st.session_state['letzte_aktion'] = 'funktion_mit_karte'
st.session_state['show_map'] = True
st.session_state['map_data'] = map_data
# --- Hauptbereich: Button für Wiederholung der letzten Aktion ---
if st.button("Letzte Aktion wiederholen"):
if st.session_state['letzte_aktion'] == 'cesar_all':
st.session_state['output_text'] = cesar_all(input_text)
st.session_state['show_map'] = False
elif st.session_state['letzte_aktion'] == 'bbw':
st.session_state['output_text'] = buchstabenwortwert(input_text)
st.session_state['show_map'] = False
elif st.session_state['letzte_aktion'] == 'funktion_mit_karte':
output_text, map_data = funktion_mit_karte(input_text)
st.session_state['output_text'] = output_text
st.session_state['show_map'] = True
st.session_state['map_data'] = map_data
# Ausgabefeld
st.text_area('Ausgabe:', value=st.session_state['output_text'], height=300)
# Karte anzeigen, falls aktiviert
if st.session_state.get('show_map') and st.session_state.get('map_data') is not None:
st.subheader("Kartenansicht")
st.map(st.session_state['map_data'])