# 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", 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.buchstabenwert_zu_text(text) st.session_state.map_data = None elif auswahl == "Zeichenzählen": st.session_state.output_text = tools.zeichenanzahl(text) st.session_state.map_data = None elif auswahl == "Text rückwärts": st.session_state.output_text = tools.zeichenkette_reverse(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.einschluss_count(text) st.session_state.map_data = None elif auswahl == "ABC -> Morse": st.session_state.output_text = tools.abc_to_morse(text) st.session_state.map_data = None elif auswahl == "Morse -> ABC": st.session_state.output_text = tools.morse_to_abc(text) st.session_state.map_data = None elif auswahl == "ROT5": st.session_state.output_text = tools.rot5(text) st.session_state.map_data = None elif auswahl == "ROT13": st.session_state.output_text = tools.rot13(text) st.session_state.map_data = None elif auswahl == "ROT18": st.session_state.output_text = tools.rot18(text) st.session_state.map_data = None elif auswahl == "ROT47": st.session_state.output_text = tools.rot47(text) st.session_state.map_data = None elif auswahl == "ASCII-Text->HEX": st.session_state.output_text = tools.ascii_to_hex(text) st.session_state.map_data = None elif auswahl == "ASCII-Text->DEZ": st.session_state.output_text = tools.ascii_to_dez(text) st.session_state.map_data = None elif auswahl == "ASCII-Text->Octal": st.session_state.output_text = tools.ascii_to_octal(text) st.session_state.map_data = None elif auswahl == "ASCII-Text->BIN (16bit)": st.session_state.output_text = tools.ascii_to_bin16(text) st.session_state.map_data = None elif auswahl == "ASCII-Text->BIN (8bit)": st.session_state.output_text = tools.ascii_to_bin8(text) st.session_state.map_data = None elif auswahl == "HEX->ASCII-Text": st.session_state.output_text = tools.hex_to_ascii(text) st.session_state.map_data = None elif auswahl == "DEZ->ASCII-Text": st.session_state.output_text = tools.dez_to_ascii(text) st.session_state.map_data = None elif auswahl == "Octal->ASCII-Text": st.session_state.output_text = tools.octal_to_ascii(text) st.session_state.map_data = None elif auswahl == "BIN->ASCII-Text": st.session_state.output_text = tools.bin_to_ascii(text) st.session_state.map_data = None elif auswahl == "Zahlwortsuche-DE (0-12)": st.session_state.output_text = tools.zahlwortsuche_de(text) st.session_state.map_data = None elif auswahl == "Zahlwortsuche-EN (0-15)": st.session_state.output_text = tools.zahlwortsuche_en(text) st.session_state.map_data = None elif auswahl == "KENNYspeak kodieren": st.session_state.output_text = tools.kenny_kodieren(text) st.session_state.map_data = None elif auswahl == "KENNYspeak dekodieren": st.session_state.output_text = tools.kenny_dekodieren(text) st.session_state.map_data = None elif auswahl == "KENNYspeak raten": st.session_state.output_text = tools.kenny_raten(text) st.session_state.map_data = None elif auswahl == "Primz.Alpha dekodieren": st.session_state.output_text = tools.primzahlalphabet_dekodieren(text) st.session_state.map_data = None elif auswahl == "ist (n.te) Primzahl?": st.session_state.output_text = tools.primzahlpruefen(text) st.session_state.map_data = None elif auswahl == "zeige n.te Primzahl": st.session_state.output_text = tools.nte_primzahl(text) st.session_state.map_data = None elif auswahl == "Primfaktorenzerlegung": st.session_state.output_text = tools.primfaktoren(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", "ABC -> Morse", "Morse -> ABC", "ROT5", "ROT13", "ROT18", "ROT47", "ASCII-Text->HEX", "ASCII-Text->DEZ", "ASCII-Text->Octal", "ASCII-Text->BIN (16bit)", "ASCII-Text->BIN (8bit)", "HEX->ASCII-Text", "DEZ->ASCII-Text", "Octal->ASCII-Text", "Zahlwortsuche-DE (0-12)", "Zahlwortsuche-EN (0-15)", "KENNYspeak kodieren", "KENNYspeak dekodieren", "KENNYspeak raten", "Primz.Alpha dekodieren", "ist (n.te) Primzahl?", "zeige n.te Primzahl", "Primfaktorenzerlegung", "", "", "", "", "", "", ), 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)