75 lines
2.9 KiB
Python
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'])
|