prepared for implement more functions
This commit is contained in:
113
app/app.py
113
app/app.py
@@ -1,74 +1,87 @@
|
||||
# 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_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)
|
||||
st.image('./logo-mit-tb.png', width=150)
|
||||
with title_col:
|
||||
st.write(' \n \n# tebarius web-Mysteryhelfer')
|
||||
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ü:', height=150)
|
||||
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 ---
|
||||
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
|
||||
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'
|
||||
)
|
||||
|
||||
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
|
||||
# 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"
|
||||
)
|
||||
|
||||
# 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
|
||||
# Button zum manuellen Ausführen der Verarbeitungsfunktion
|
||||
if st.button(f"{st.session_state.option}"):
|
||||
auswahl_verarbeiten()
|
||||
|
||||
# Ausgabefeld
|
||||
st.text_area('Ausgabe:', value=st.session_state['output_text'], height=300)
|
||||
st.markdown('__Ausgabe:__')
|
||||
st.markdown(st.session_state.output_text)
|
||||
|
||||
# Karte anzeigen, falls aktiviert
|
||||
if st.session_state.get('show_map') and st.session_state.get('map_data') is not None:
|
||||
if st.session_state.map_data is not None:
|
||||
st.subheader("Kartenansicht")
|
||||
st.map(st.session_state['map_data'])
|
||||
st.map(st.session_state.map_data)
|
||||
|
||||
Reference in New Issue
Block a user