# app.py import streamlit as st import tools standard_output = ('#### Um den HILFE-Text zu einzelnen Funktionen aufzurufen bitte die Funktion mit leerem' ' Eingabefeld aufrufen.') 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') logo_col, title_col = st.columns([1,5]) with logo_col: st.image('./logo-mit-tb.png', width=150) with title_col: st.write('### tebarius Mysteryhelfer (web)') # Callback-Funktion zur Verarbeitung der Auswahl def auswahl_verarbeiten(): text = st.session_state.input_text auswahl = st.session_state.option if auswahl == "Wähle eine Funktion": st.session_state.output_text = standard_output st.session_state.map_data = None elif auswahl == "Cesarchiffre (all)": st.session_state.output_text = tools.cesar_all(text) st.session_state.map_data = None elif auswahl == "BW,BWW,... ermitteln": st.session_state.output_text = tools.buchstabenwortwert(text) st.session_state.map_data = None elif auswahl == "Buchstabenwert->Text": st.session_state.output_text = tools.buchstabenwertzutext(text) st.session_state.map_data = None elif auswahl == "Zeichenzählen": st.session_state.output_text = tools.zeichenzaehlen(text) st.session_state.map_data = None elif auswahl == "Text rückwärts": st.session_state.output_text = tools.zeichenkette_rueckwaerts(text) st.session_state.map_data = None elif auswahl == "Quersumme(n)": st.session_state.output_text = tools.quersummen(text) st.session_state.map_data = None elif auswahl == "Einschlüsse zählen": st.session_state.output_text = tools.einschluesse(text) st.session_state.map_data = None elif auswahl == "REPLACE": st.session_state.output_text = tools.REPLACE(text) st.session_state.map_data = None elif auswahl == "REPLACE": st.session_state.output_text = tools.REPLACE(text) st.session_state.map_data = None elif auswahl == "REPLACE": st.session_state.output_text = tools.REPLACE(text) st.session_state.map_data = None elif auswahl == "REPLACE": st.session_state.output_text = tools.REPLACE(text) st.session_state.map_data = None elif auswahl == "REPLACE": st.session_state.output_text = tools.REPLACE(text) st.session_state.map_data = None elif auswahl == "REPLACE": st.session_state.output_text = tools.REPLACE(text) st.session_state.map_data = None elif auswahl == "REPLACE": st.session_state.output_text = tools.REPLACE(text) st.session_state.map_data = None elif auswahl == "Dummy mit Karte": output, mapd = tools.funktion_mit_karte(text, additional_parameter) st.session_state.output_text = output st.session_state.map_data = mapd # Standardwerte im Session State initialisieren if 'option' not in st.session_state: st.session_state.option = "Wähle eine Funktion" if 'input_text' not in st.session_state: st.session_state.input_text = "" if 'output_text' not in st.session_state: st.session_state.output_text = standard_output if 'map_data' not in st.session_state: st.session_state.map_data = None # Eingabefeld im Hauptbereich input_text = st.text_area('Gib deinen Text hier ein und wähle eine Funktion im Menü auf der linken Seite:', key='input_text', height=150) # --- Sidebar: Buttons selektieren und Aktion setzen --- option = st.sidebar.radio("hidden_label", options=("Wähle eine Funktion", "Dummy mit Karte", "Cesarchiffre (all)", "BW,BWW,... ermitteln", "Buchstabenwert->Text", "Zeichenzählen", "Text rückwärts", "Quersumme(n)", "Einschlüsse zählen", "", "", "", "", "", ), key='option', on_change=auswahl_verarbeiten, label_visibility='collapsed' ) # Optionales einzeiliges Eingabefeld nur für bestimmte Funktionen additional_parameter = None if option == "Dummy mit Karte": additional_parameter = st.text_input( "Optionaler Zusatztext für Dummy mit Karte", placeholder="Zusätzliche Eingabe hier" ) # Button zum manuellen Ausführen der Verarbeitungsfunktion if st.button(f"{st.session_state.option}"): auswahl_verarbeiten() # Ausgabefeld st.markdown('__Ausgabe:__') st.markdown(st.session_state.output_text) # Karte anzeigen, falls aktiviert if st.session_state.map_data is not None: st.subheader("Kartenansicht") st.map(st.session_state.map_data)