farbe für menü und about-text

This commit is contained in:
2025-07-29 14:17:19 +02:00
parent 01a1f74ab0
commit 45e16dcbe7
5 changed files with 189 additions and 171 deletions

View File

@@ -12,18 +12,29 @@ st.set_page_config(
# the same favicon and if posting links for example in whatsapp they will have the same title # the same favicon and if posting links for example in whatsapp they will have the same title
page_title="tebarius Mysteryhelfer (web)", page_title="tebarius Mysteryhelfer (web)",
page_icon="images/favicon.ico", page_icon="images/favicon.ico",
layout="wide" layout="wide",
menu_items={
'About': '### tebarius Mysteryhelfer (web)\n'
'Dies ist die Umsetzung der [Desktop-App Mysteryhelfer](https://mysteryhelfer.tebarius.duckdns.org/) '
'([Source](https://gitea.tebarius.duckdns.org/tebarius/Mysteryhelfer)) als Web-App. \n \n'
'Für die Umsetzung kommt das Python-Framework [Streamlit](https://streamlit.io/) zum Einsatz. \n \n'
'_Der Sourcecode und Docker-Images zum selbst hosten sind auf_ '
'_https://gitea.tebarius.duckdns.org/tebarius/Mysteryhelfer-web verfügbar._ \n \n'
'Anregungen, Hinweise, Fehlerreports gerne an: '
'[tba@gmx.li](mailto:tba@gmx.li?subject=Mysteryhelfer-web) oder über einen Logeintrag beim '
'[App-TB](https://www.geocaching.com/track/details.aspx?tracker=arx57k) '
'(trackbar auf geocaching.com).',
}
) )
st.logo('images/logo.png', size='large') st.logo('images/logo.png', size='large', link='https://gitea.tebarius.duckdns.org/tebarius/Mysteryhelfer-web')
logo_col, title_col = st.columns([1,4]) logo_col, title_col = st.columns([1,4])
with logo_col: with logo_col:
st.markdown(f'<a href="https://gitea.tebarius.duckdns.org/tebarius/Mysteryhelfer-web">' st.markdown(f'<a href="https://www.geocaching.com/track/details.aspx?tracker=arx57k">'
f'<img src="data:image/png;base64,' f'<img src="data:image/png;base64,'
f'{base64.b64encode(open("images/logo-mit-tb.png", "rb").read()).decode()}" width="150">' f'{base64.b64encode(open("images/logo-mit-tb.png", "rb").read()).decode()}" '
f'<img src="data:image/png;base64,' f'width="150" style="border-radius: 10px;">'
f'{base64.b64encode(open("images/gitea.png", "rb").read()).decode()}" width="70">'
f'</a>', f'</a>',
unsafe_allow_html=True) unsafe_allow_html=True)
with title_col: with title_col:
@@ -36,228 +47,229 @@ def auswahl_verarbeiten():
if auswahl == "Wähle eine Funktion": if auswahl == "Wähle eine Funktion":
st.session_state.output_text = standard_output st.session_state.output_text = standard_output
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Cesarchiffre (all)": elif "Cesarchiffre (all)" in auswahl:
st.session_state.output_text = tools.cesar_all(text) st.session_state.output_text = tools.cesar_all(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "BW,BWW,... ermitteln": elif "BW,BWW,... ermitteln" in auswahl:
st.session_state.output_text = tools.buchstabenwortwert(text) st.session_state.output_text = tools.buchstabenwortwert(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Buchstabenwert->Text": elif "Buchstabenwert -> Text" in auswahl:
st.session_state.output_text = tools.buchstabenwert_zu_text(text) st.session_state.output_text = tools.buchstabenwert_zu_text(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Zeichenzählen": elif "Zeichenzählen" in auswahl:
st.session_state.output_text = tools.zeichenanzahl(text) st.session_state.output_text = tools.zeichenanzahl(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Text rückwärts": elif "Text rückwärts" in auswahl:
st.session_state.output_text = tools.zeichenkette_reverse(text) st.session_state.output_text = tools.zeichenkette_reverse(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Quersumme(n)": elif "Quersumme(n)" in auswahl:
st.session_state.output_text = tools.quersummen(text) st.session_state.output_text = tools.quersummen(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Einschlüsse zählen": elif "Einschlüsse zählen" in auswahl:
st.session_state.output_text = tools.einschluss_count(text) st.session_state.output_text = tools.einschluss_count(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "ABC -> Morse": elif "ABC -> Morse" in auswahl:
st.session_state.output_text = tools.abc_to_morse(text) st.session_state.output_text = tools.abc_to_morse(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Morse -> ABC": elif "Morse -> ABC" in auswahl:
st.session_state.output_text = tools.morse_to_abc(text) st.session_state.output_text = tools.morse_to_abc(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "ROT5": elif "ROT5" in auswahl:
st.session_state.output_text = tools.rot5(text) st.session_state.output_text = tools.rot5(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "ROT13": elif "ROT13" in auswahl:
st.session_state.output_text = tools.rot13(text) st.session_state.output_text = tools.rot13(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "ROT18": elif "ROT18" in auswahl:
st.session_state.output_text = tools.rot18(text) st.session_state.output_text = tools.rot18(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "ROT47": elif "ROT47" in auswahl:
st.session_state.output_text = tools.rot47(text) st.session_state.output_text = tools.rot47(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "ASCII-Text->HEX": elif "ASCII-Text -> HEX" in auswahl:
st.session_state.output_text = tools.ascii_to_hex(text) st.session_state.output_text = tools.ascii_to_hex(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "ASCII-Text->DEZ": elif "ASCII-Text -> DEZ" in auswahl:
st.session_state.output_text = tools.ascii_to_dez(text) st.session_state.output_text = tools.ascii_to_dez(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "ASCII-Text->Octal": elif "ASCII-Text -> Octal" in auswahl:
st.session_state.output_text = tools.ascii_to_octal(text) st.session_state.output_text = tools.ascii_to_octal(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "ASCII-Text->BIN (16bit)": elif "ASCII-Text -> BIN (16bit)" in auswahl:
st.session_state.output_text = tools.ascii_to_bin16(text) st.session_state.output_text = tools.ascii_to_bin16(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "ASCII-Text->BIN (8bit)": elif "ASCII-Text -> BIN (8bit)" in auswahl:
st.session_state.output_text = tools.ascii_to_bin8(text) st.session_state.output_text = tools.ascii_to_bin8(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "HEX->ASCII-Text": elif "HEX -> ASCII-Text" in auswahl:
st.session_state.output_text = tools.hex_to_ascii(text) st.session_state.output_text = tools.hex_to_ascii(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "DEZ->ASCII-Text": elif "DEZ -> ASCII-Text" in auswahl:
st.session_state.output_text = tools.dez_to_ascii(text) st.session_state.output_text = tools.dez_to_ascii(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Octal->ASCII-Text": elif "Octal -> ASCII-Text" in auswahl:
st.session_state.output_text = tools.octal_to_ascii(text) st.session_state.output_text = tools.octal_to_ascii(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "BIN->ASCII-Text": elif "BIN -> ASCII-Text" in auswahl:
st.session_state.output_text = tools.bin_to_ascii(text) st.session_state.output_text = tools.bin_to_ascii(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Zahlwortsuche-DE (0-12)": elif "Zahlwortsuche-DE (0-12)" in auswahl:
st.session_state.output_text = tools.zahlwortsuche_de(text) st.session_state.output_text = tools.zahlwortsuche_de(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Zahlwortsuche-EN (0-15)": elif "Zahlwortsuche-EN (0-15)" in auswahl:
st.session_state.output_text = tools.zahlwortsuche_en(text) st.session_state.output_text = tools.zahlwortsuche_en(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "KENNYspeak kodieren": elif "KENNYspeak kodieren" in auswahl:
st.session_state.output_text = tools.kenny_kodieren(text) st.session_state.output_text = tools.kenny_kodieren(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "KENNYspeak dekodieren": elif "KENNYspeak dekodieren" in auswahl:
st.session_state.output_text = tools.kenny_dekodieren(text) st.session_state.output_text = tools.kenny_dekodieren(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "KENNYspeak raten": elif "KENNYspeak raten" in auswahl:
st.session_state.output_text = tools.kenny_raten(text) st.session_state.output_text = tools.kenny_raten(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Primz.Alpha dekodieren": elif "Primz.Alpha dekodieren" in auswahl:
st.session_state.output_text = tools.primzahlalphabet_dekodieren(text) st.session_state.output_text = tools.primzahlalphabet_dekodieren(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "ist (n.te) Primzahl?": elif "ist (n.te) Primzahl?" in auswahl:
st.session_state.output_text = tools.primzahlpruefen(text) st.session_state.output_text = tools.primzahlpruefen(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "zeige n.te Primzahl": elif "zeige n.te Primzahl" in auswahl:
st.session_state.output_text = tools.nte_primzahl(text) st.session_state.output_text = tools.nte_primzahl(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Primfaktorenzerlegung": elif "Primfaktorenzerlegung" in auswahl:
st.session_state.output_text = tools.primfaktoren(text) st.session_state.output_text = tools.primfaktoren(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "HEX -> DEZ,OCT,BIN": elif "HEX -> DEZ,OCT,BIN" in auswahl:
st.session_state.output_text = tools.hex_to_dez_oct_bin(text) st.session_state.output_text = tools.hex_to_dez_oct_bin(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "DEZ -> HEX,OCT,BIN": elif "DEZ -> HEX,OCT,BIN" in auswahl:
st.session_state.output_text = tools.dez_to_hex_oct_bin(text) st.session_state.output_text = tools.dez_to_hex_oct_bin(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "OCT -> HEX,DEZ,BIN": elif "OCT -> HEX,DEZ,BIN" in auswahl:
st.session_state.output_text = tools.oct_to_hex_dez_bin(text) st.session_state.output_text = tools.oct_to_hex_dez_bin(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "BIN -> HEX,DEZ,OCT": elif "BIN -> HEX,DEZ,OCT" in auswahl:
st.session_state.output_text = tools.bin_to_hex_dez_oct(text) st.session_state.output_text = tools.bin_to_hex_dez_oct(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Text->Tomtom": elif "Text -> Tomtom" in auswahl:
st.session_state.output_text = tools.abc_to_tomtom(text) st.session_state.output_text = tools.abc_to_tomtom(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Tomtom->Text": elif "Tomtom -> Text" in auswahl:
st.session_state.output_text = tools.tomtom_to_abc(text) st.session_state.output_text = tools.tomtom_to_abc(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Text->Slash and Pipe": elif "Text -> Slash and Pipe" in auswahl:
st.session_state.output_text = tools.text_to_slashpipe(text) st.session_state.output_text = tools.text_to_slashpipe(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Slash and Pipe->Text": elif "Slash and Pipe -> Text" in auswahl:
st.session_state.output_text = tools.slashpipe_to_text(text) st.session_state.output_text = tools.slashpipe_to_text(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "PSE: O.zahl<->Symbol": elif "PSE: O.zahl <-> Symbol" in auswahl:
st.session_state.output_text = tools.periodensystem(text) st.session_state.output_text = tools.periodensystem(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Nak-Nak -> Text": elif "Nak-Nak -> Text" in auswahl:
st.session_state.output_text = tools.naknak_to_text(text) st.session_state.output_text = tools.naknak_to_text(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Navajo -> Text": elif "Navajo -> Text" in auswahl:
st.session_state.output_text = tools.navajo_to_text(text) st.session_state.output_text = tools.navajo_to_text(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Kreiszahl PI": elif "Kreiszahl PI" in auswahl:
st.session_state.output_text = tools.pi_suche(text) st.session_state.output_text = tools.pi_suche(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Eulersche Zahl": elif "Eulersche Zahl" in auswahl:
st.session_state.output_text = tools.euler_suche(text) st.session_state.output_text = tools.euler_suche(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "phi (goldener Schnitt)": elif "phi (goldener Schnitt)" in auswahl:
st.session_state.output_text = tools.goldener_schnitt_suche(text) st.session_state.output_text = tools.goldener_schnitt_suche(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Anagrammsuche-DE": elif "Anagrammsuche-DE" in auswahl:
st.session_state.output_text = tools.anagramm_suche_de(text) st.session_state.output_text = tools.anagramm_suche_de(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Anagrammsuche-EN": elif "Anagrammsuche-EN" in auswahl:
st.session_state.output_text = tools.anagramm_suche_en(text) st.session_state.output_text = tools.anagramm_suche_en(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Wortsuche-DE": elif "Wortsuche-DE" in auswahl:
st.session_state.output_text = tools.wortsuche_de(text) st.session_state.output_text = tools.wortsuche_de(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Wortsuche-EN": elif "Wortsuche-EN" in auswahl:
st.session_state.output_text = tools.wortsuche_en(text) st.session_state.output_text = tools.wortsuche_en(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Re-Morse-DE": elif "Re-Morse-DE" in auswahl:
st.session_state.output_text = tools.remorse_de(text) st.session_state.output_text = tools.remorse_de(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Re-Morse-EN": elif "Re-Morse-EN" in auswahl:
st.session_state.output_text = tools.remorse_en(text) st.session_state.output_text = tools.remorse_en(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "T9-DE dekodieren": elif "T9-DE dekodieren" in auswahl:
st.session_state.output_text = tools.t9_de(text) st.session_state.output_text = tools.t9_de(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "T9-EN dekodieren": elif "T9-EN dekodieren" in auswahl:
st.session_state.output_text = tools.t9_en(text) st.session_state.output_text = tools.t9_en(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Vigenere-Chiffre": elif "Vigenere-Chiffre" in auswahl:
st.session_state.output_text = tools.vigenere(text, additional_parameter) st.session_state.output_text = tools.vigenere(text, additional_parameter)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Wolseley-Chiffre": elif "Wolseley-Chiffre" in auswahl:
st.session_state.output_text = tools.wolseley(text, additional_parameter) st.session_state.output_text = tools.wolseley(text, additional_parameter)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Mono.-Substitution": elif "Mono.-Substitution" in auswahl:
st.session_state.output_text = tools.monoalphasubstitution(text, additional_parameter) st.session_state.output_text = tools.monoalphasubstitution(text, additional_parameter)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Autokey-Chiffre": elif "Autokey-Chiffre" in auswahl:
st.session_state.output_text = tools.autokey(text, additional_parameter) st.session_state.output_text = tools.autokey(text, additional_parameter)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Polybios kodieren": elif "Polybios kodieren" in auswahl:
st.session_state.output_text = tools.polybios_encode(text, additional_parameter) st.session_state.output_text = tools.polybios_encode(text, additional_parameter)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Polybios dekodieren": elif "Polybios dekodieren" in auswahl:
st.session_state.output_text = tools.polybios_decode(text, additional_parameter) st.session_state.output_text = tools.polybios_decode(text, additional_parameter)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Klopfcode kodieren": elif "Klopfcode kodieren" in auswahl:
st.session_state.output_text = tools.klopfcode_encode(text) st.session_state.output_text = tools.klopfcode_encode(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Klopfcode dekodieren": elif "Klopfcode dekodieren" in auswahl:
st.session_state.output_text = tools.klopfcode_decode(text) st.session_state.output_text = tools.klopfcode_decode(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Maptiles/Kachelkoord.": elif "Maptiles/Kachelkoord." in auswahl:
output, mapd = tools.maptiles_kachelkoordinaten(text) output, mapd = tools.maptiles_kachelkoordinaten(text)
st.session_state.output_text = output st.session_state.output_text = output
st.session_state.map_data = mapd st.session_state.map_data = mapd
elif auswahl == "Quadtree/Quadkey": elif "Quadtree/Quadkey" in auswahl:
output, mapd = tools.quadtree_koordinaten(text) output, mapd = tools.quadtree_koordinaten(text)
st.session_state.output_text = output st.session_state.output_text = output
st.session_state.map_data = mapd st.session_state.map_data = mapd
elif auswahl == "Chronogramm": elif "Chronogramm" in auswahl:
st.session_state.output_text = tools.chronogramm(text) st.session_state.output_text = tools.chronogramm(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Zahl röm.<->arabisch": elif "Zahl röm. <-> arabisch" in auswahl:
st.session_state.output_text = tools.zahlen_roemisch_arabisch_umwandeln(text) st.session_state.output_text = tools.zahlen_roemisch_arabisch_umwandeln(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "URL decode": elif "URL decode" in auswahl:
st.session_state.output_text = tools.url_decode(text) st.session_state.output_text = tools.url_decode(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Reverse-Wherigo": elif "Reverse-Wherigo" in auswahl:
st.session_state.output_text = tools.reversewig(text) output, mapd = tools.reversewig(text)
st.session_state.map_data = None st.session_state.output_text = output
elif auswahl == "Base64<->ASCII": st.session_state.map_data = mapd
elif "Base64 <-> ASCII" in auswahl:
st.session_state.output_text = tools.base64_ascii(text) st.session_state.output_text = tools.base64_ascii(text)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Jägerzaun kodieren": elif "Jägerzaun kodieren" in auswahl:
st.session_state.output_text = tools.jaegerzaun_encrypt(text, additional_parameter) st.session_state.output_text = tools.jaegerzaun_encrypt(text, additional_parameter)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "Jägerzaun dekodieren": elif "Jägerzaun dekodieren" in auswahl:
st.session_state.output_text = tools.jaegerzaun_decrypt(text, additional_parameter) st.session_state.output_text = tools.jaegerzaun_decrypt(text, additional_parameter)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "ADFGX kodieren": elif "ADFGX kodieren" in auswahl:
st.session_state.output_text = tools.adfgx_kodieren(text, additional_parameter) st.session_state.output_text = tools.adfgx_kodieren(text, additional_parameter)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "ADFGX dekodieren": elif "ADFGX dekodieren" in auswahl:
st.session_state.output_text = tools.adfgx_dekodieren(text, additional_parameter) st.session_state.output_text = tools.adfgx_dekodieren(text, additional_parameter)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "ADFGVX kodieren": elif "ADFGVX kodieren" in auswahl:
st.session_state.output_text = tools.adfgvx_kodieren(text, additional_parameter) st.session_state.output_text = tools.adfgvx_kodieren(text, additional_parameter)
st.session_state.map_data = None st.session_state.map_data = None
elif auswahl == "ADFGVX dekodieren": elif "ADFGVX dekodieren" in auswahl:
st.session_state.output_text = tools.adfgvx_dekodieren(text, additional_parameter) st.session_state.output_text = tools.adfgvx_dekodieren(text, additional_parameter)
st.session_state.map_data = None st.session_state.map_data = None
@@ -279,80 +291,85 @@ input_text = st.text_area('Gib deinen Text hier ein und wähle eine Funktion im
# --- Sidebar: Buttons selektieren und Aktion setzen --- # --- Sidebar: Buttons selektieren und Aktion setzen ---
option = st.sidebar.radio("hidden_label", option = st.sidebar.radio("hidden_label",
# :color[text to be colored] -> ex.: blue[my text]
# supported colors: blue, green, orange, red, violet, gray/grey, rainbow, or primary
# :color-badge[text in the badge] -> ex.: blue-badge[my text]
# blue, green, orange, red, violet, gray/grey, or primary
options=("Wähle eine Funktion", options=("Wähle eine Funktion",
"Cesarchiffre (all)", ":orange[Cesarchiffre (all)]",
"BW,BWW,... ermitteln", ":orange[BW,BWW,... ermitteln]",
"Buchstabenwert->Text", ":blue[Buchstabenwert -> Text]",
"Zeichenzählen", ":orange[Zeichenzählen]",
"Text rückwärts", ":orange[Text rückwärts]",
"Quersumme(n)", ":blue[Quersumme(n)]",
"Einschlüsse zählen", ":orange[Einschlüsse zählen]",
"ABC -> Morse", ":green[ABC -> Morse]",
"Morse -> ABC", ":green[Morse -> ABC]",
"ROT5", ":green[ROT5]",
"ROT13", ":green[ROT13]",
"ROT18", ":green[ROT18]",
"ROT47", ":green[ROT47]",
"ASCII-Text->HEX", ":orange[ASCII-Text -> HEX]",
"ASCII-Text->DEZ", ":orange[ASCII-Text -> DEZ]",
"ASCII-Text->Octal", ":orange[ASCII-Text -> Octal]",
"ASCII-Text->BIN (16bit)", ":orange[ASCII-Text -> BIN (16bit)]",
"ASCII-Text->BIN (8bit)", ":orange[ASCII-Text -> BIN (8bit)]",
"HEX->ASCII-Text", ":blue[HEX -> ASCII-Text]",
"DEZ->ASCII-Text", ":blue[DEZ -> ASCII-Text]",
"Octal->ASCII-Text", ":blue[Octal -> ASCII-Text]",
"Zahlwortsuche-DE (0-12)", ":orange-badge[Zahlwortsuche-DE (0-12)]",
"Zahlwortsuche-EN (0-15)", ":orange-badge[Zahlwortsuche-EN (0-15)]",
"KENNYspeak kodieren", ":green[KENNYspeak kodieren]",
"KENNYspeak dekodieren", ":green[KENNYspeak dekodieren]",
"KENNYspeak raten", ":green-badge[KENNYspeak raten]",
"Primz.Alpha dekodieren", ":green[Primz.Alpha dekodieren]",
"ist (n.te) Primzahl?", ":blue[ist (n.te) Primzahl?]",
"zeige n.te Primzahl", ":blue[zeige n.te Primzahl]",
"Primfaktorenzerlegung", ":blue[Primfaktorenzerlegung]",
"HEX -> DEZ,OCT,BIN", ":blue[HEX -> DEZ,OCT,BIN]",
"DEZ -> HEX,OCT,BIN", ":blue[DEZ -> HEX,OCT,BIN]",
"OCT -> HEX,DEZ,BIN", ":blue[OCT -> HEX,DEZ,BIN]",
"BIN -> HEX,DEZ,OCT", ":blue[BIN -> HEX,DEZ,OCT]",
"Text->Tomtom", ":green[Text -> Tomtom]",
"Tomtom->Text", ":green[Tomtom -> Text]",
"Text->Slash and Pipe", ":green[Text -> Slash and Pipe]",
"Slash and Pipe->Text", ":green[Slash and Pipe -> Text]",
"PSE: O.zahl<->Symbol", ":green[PSE: O.zahl <-> Symbol]",
"Nak-Nak -> Text", ":green[Nak-Nak -> Text]",
"Navajo -> Text", ":green[Navajo -> Text]",
"Kreiszahl PI", ":blue[Kreiszahl PI]",
"Eulersche Zahl", ":blue[Eulersche Zahl]",
"phi (goldener Schnitt)", ":blue[phi (goldener Schnitt)]",
"Anagrammsuche-DE", ":orange-badge[Anagrammsuche-DE]",
"Anagrammsuche-EN", ":orange-badge[Anagrammsuche-EN]",
"Wortsuche-DE", ":orange-badge[Wortsuche-DE]",
"Wortsuche-EN", ":orange-badge[Wortsuche-EN]",
"Re-Morse-DE", ":green-badge[Re-Morse-DE]",
"Re-Morse-EN", ":green-badge[Re-Morse-EN]",
"T9-DE dekodieren", ":green-badge[T9-DE dekodieren]",
"T9-EN dekodieren", ":green-badge[T9-EN dekodieren]",
"Vigenere-Chiffre", ":green[Vigenere-Chiffre]",
"Wolseley-Chiffre", ":green[Wolseley-Chiffre]",
"Mono.-Substitution", ":green[Mono.-Substitution]",
"Autokey-Chiffre", ":green[Autokey-Chiffre]",
"Polybios kodieren", ":green[Polybios kodieren]",
"Polybios dekodieren", ":green[Polybios dekodieren]",
"Klopfcode kodieren", ":green[Klopfcode kodieren]",
"Klopfcode dekodieren", ":green[Klopfcode dekodieren]",
"Maptiles/Kachelkoord.", ":violet[Maptiles/Kachelkoord.]",
"Quadtree/Quadkey", ":violet[Quadtree/Quadkey]",
"Chronogramm", ":orange[Chronogramm]",
"Zahl röm.<->arabisch", ":blue[Zahl röm. <-> arabisch]",
"URL decode", ":orange[URL decode]",
"Reverse-Wherigo", ":violet[Reverse-Wherigo]",
"Base64<->ASCII", ":green[Base64 <-> ASCII]",
"Jägerzaun kodieren", ":green[Jägerzaun kodieren]",
"Jägerzaun dekodieren", ":green[Jägerzaun dekodieren]",
"ADFGX kodieren", ":green[ADFGX kodieren]",
"ADFGX dekodieren", ":green[ADFGX dekodieren]",
"ADFGVX kodieren", ":green[ADFGVX kodieren]",
"ADFGVX dekodieren", ":green[ADFGVX dekodieren]",
), ),
key='option', key='option',
on_change=auswahl_verarbeiten, on_change=auswahl_verarbeiten,

View File

@@ -517,8 +517,9 @@ reversewig = ('### Reverse Wherigo zu Koordinaten\n'
' Leider??? Ja leider denn das führt auch dazu, das es inzwischen so extrem viele dieser ' ' Leider??? Ja leider denn das führt auch dazu, das es inzwischen so extrem viele dieser '
'Reverse-Wherigos gibt wo sich die Owner anscheinend auch denken "Die spielt doch sowieso keiner ' 'Reverse-Wherigos gibt wo sich die Owner anscheinend auch denken "Die spielt doch sowieso keiner '
'mehr normal..." anders kann ich mir ganze Trails mit Reverse-Wherigos nicht erklären. Um die ' 'mehr normal..." anders kann ich mir ganze Trails mit Reverse-Wherigos nicht erklären. Um die '
'Funktion zu nutzen braucht man nur die 3 Zahlen durch ein entsprechendes Trennzeichen: ' 'Funktion zu nutzen braucht man nur die 3 Zahlen getrennt durch ein entsprechendes Trennzeichen: '
'| , _ / ; , oder Leerzeichen eingeben und auf den Knopp klicken und bekommt Koordinaten.') '| , _ / ; , oder Leerzeichen eingeben und auf den Knopp klicken und bekommt Koordinaten und eine '
'ungefähre Vorschau auf einer Karte.')
base64_ascii = ('### Base64 <-> ASCII\n' base64_ascii = ('### Base64 <-> ASCII\n'
'Base64 ist ein Kodierungsverfahren, welches dazu verwendet wird um beliebige Binärdaten nur Hilfe ' 'Base64 ist ein Kodierungsverfahren, welches dazu verwendet wird um beliebige Binärdaten nur Hilfe '

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

View File

@@ -2209,7 +2209,7 @@ def reversewig(eingabetext):
seperator = ("|,", "_", "/", ";", ",") seperator = ("|,", "_", "/", ";", ",")
eingabetext = eingabetext.rstrip() eingabetext = eingabetext.rstrip()
if eingabetext == "": if eingabetext == "":
return hilfetexte.reversewig return hilfetexte.reversewig, None
else: else:
se = "" se = ""
for s in seperator: for s in seperator:
@@ -2218,26 +2218,26 @@ def reversewig(eingabetext):
if se == "" and " " in eingabetext: if se == "" and " " in eingabetext:
se = " " se = " "
if se == "": if se == "":
return "Keine gültiges Trennzeichen (, ; / _ | oder Leerzeichen) erkannt!" return ":red[Keine gültiges Trennzeichen (, ; / _ | oder Leerzeichen) erkannt!]" , None
else: else:
txt = eingabetext.split(se) txt = eingabetext.split(se)
if len(txt) == 3: if len(txt) == 3:
ausgabetext = ""
error = 0
for z in txt: for z in txt:
try: try:
int(z) int(z)
except ValueError: except ValueError:
ausgabetext += "Bitte die Eingabezahlen überprüfen \n" return ":red[Bitte die Eingabezahlen überprüfen!]", None
error += 1 la, lo = helper.rwig_to_coords(txt[0], txt[1], txt[2])
if error == 0: if (not la < -85.05113 and not la > 85.05113 and not lo < -180 and not lo > 180 and
final = helper.rwig_to_coords(txt[0], txt[1], txt[2]) not (la == 0 and lo == 0)):
ausgabetext += "WIG: " + txt[0] + ", " + txt[1] + ", " + txt[2] + " \n" ausgabetext = f":blue[WIG:] {txt[0]}, {txt[1]}, {txt[2]} \n"
ausgabetext += "DEC: " + str(final[0]) + " " + str(final[1]) + " \n" ausgabetext += f":blue[DEC:] {round(la, 5)} {round(lo, 5)} \n"
ausgabetext += "DEG: " + helper.dec_to_deg(final[0], final[1]) + " \n" ausgabetext += f":blue[DEG:] {helper.dec_to_deg(la, lo)} \n"
return ausgabetext return ausgabetext, pd.DataFrame({'lat': [la], 'lon': [lo]})
else:
return f":red[Die Zahlen ergeben keine sinnvolle Koordinate!!! {la, lo}]", None
else: else:
return "Es wurden nicht 3 Zahlen erkannt. \n" return ":red[Es wurden nicht 3 Zahlen erkannt.]", None
def base64_ascii(eingabetext): def base64_ascii(eingabetext):
eingabetext = eingabetext.rstrip() eingabetext = eingabetext.rstrip()

View File

@@ -4,7 +4,7 @@ Dies ist die Umsetzung der [Desktop-App Mysteryhelfer](https://mysteryhelfer.teb
Für die Umsetzung kommt das Python-Framework [Streamlit](https://streamlit.io/) zum Einsatz, durch welches es mir möglich war, dieselben Funktionen zu implementieren wie sie für die Desktop-App genutzt werden. (Für die Funktionen war hier primär nur die Ausgabe anzupassen.) Für die Umsetzung kommt das Python-Framework [Streamlit](https://streamlit.io/) zum Einsatz, durch welches es mir möglich war, dieselben Funktionen zu implementieren wie sie für die Desktop-App genutzt werden. (Für die Funktionen war hier primär nur die Ausgabe anzupassen.)
Der einfachst Weg, um die App lokal laufen zu lassen, ist mit Docker, wobei ich hier mal 3 Möglichkeiten aufzeige: Der einfachst Weg, um die App lokal laufen zu lassen, ist mit Docker, wobei ich hier mal 3 Möglichkeiten aufzeigen (_das vorgebaute Image ist als Multi-Arch-Image für linux/amd64,linux/arm64 gebaut und sollte somit z.B. auch auf Mac's und neueren Raspberry's mit 64 bit Betriebssystem laufen_):
1. mit vorgebautem Image: 1. mit vorgebautem Image:
- `docker run --rm -d -p 8501:8501 gitea.tebarius.duckdns.org/tebarius/mysteryhelfer` - `docker run --rm -d -p 8501:8501 gitea.tebarius.duckdns.org/tebarius/mysteryhelfer`