88 lines
3.1 KiB
Python
88 lines
3.1 KiB
Python
# app.py
|
|
import streamlit as st
|
|
from pyarrow.interchange.from_dataframe import map_date_type
|
|
|
|
from tools import *
|
|
|
|
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 = cesar_all(text)
|
|
st.session_state.map_data = None
|
|
elif auswahl == "BW,BWW,... ermitteln":
|
|
st.session_state.output_text = buchstabenwortwert(text)
|
|
st.session_state.map_data = None
|
|
elif auswahl == "Dummy mit Karte":
|
|
output, mapd = 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",
|
|
),
|
|
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)
|