From 8bea2342d501e4f7d2576e137daa03cf13a20812 Mon Sep 17 00:00:00 2001 From: tebarius Date: Mon, 28 Jul 2025 22:21:43 +0200 Subject: [PATCH] readme.md --- app/app.py | 16 +++++++++++----- app/{ => images}/favicon.ico | Bin app/images/gitea.png | Bin 0 -> 7787 bytes app/{ => images}/logo-mit-tb.png | Bin app/{ => images}/logo.png | Bin app/tools.py | 3 +-- docker-compose.yml | 2 +- readme.md | 28 ++++++++++++++++++++++++++++ 8 files changed, 41 insertions(+), 8 deletions(-) rename app/{ => images}/favicon.ico (100%) create mode 100644 app/images/gitea.png rename app/{ => images}/logo-mit-tb.png (100%) rename app/{ => images}/logo.png (100%) create mode 100644 readme.md diff --git a/app/app.py b/app/app.py index b84dce3..87a3aec 100644 --- a/app/app.py +++ b/app/app.py @@ -1,7 +1,7 @@ # Copyright (c) 2025 Martin Kayser (tebarius) # Licensed under the MIT License. See LICENSE file in the project root. import streamlit as st - +import base64 import tools standard_output = ('#### Um den HILFE-Text zu einzelnen Funktionen aufzurufen bitte die Funktion mit leerem' @@ -11,15 +11,21 @@ st.set_page_config( # we do also patching static-files of streamlit in the docker-container so bookmarks will have # the same favicon and if posting links for example in whatsapp they will have the same title page_title="tebarius Mysteryhelfer (web)", - page_icon="./favicon.ico", + page_icon="images/favicon.ico", layout="wide" ) -st.logo('./logo.png', size='large') +st.logo('images/logo.png', size='large') -logo_col, title_col = st.columns([1,5]) +logo_col, title_col = st.columns([1,4]) with logo_col: - st.image('./logo-mit-tb.png', width=150) + st.markdown(f'' + f'' + f'' + f'', + unsafe_allow_html=True) with title_col: st.write('### tebarius Mysteryhelfer (web)') diff --git a/app/favicon.ico b/app/images/favicon.ico similarity index 100% rename from app/favicon.ico rename to app/images/favicon.ico diff --git a/app/images/gitea.png b/app/images/gitea.png new file mode 100644 index 0000000000000000000000000000000000000000..dfd2125edc523f52181aade3ab93cfbadb565e0b GIT binary patch literal 7787 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 literal 0 HcmV?d00001 diff --git a/app/logo-mit-tb.png b/app/images/logo-mit-tb.png similarity index 100% rename from app/logo-mit-tb.png rename to app/images/logo-mit-tb.png diff --git a/app/logo.png b/app/images/logo.png similarity index 100% rename from app/logo.png rename to app/images/logo.png diff --git a/app/tools.py b/app/tools.py index 9cdb333..27b4e7e 100644 --- a/app/tools.py +++ b/app/tools.py @@ -2608,6 +2608,7 @@ def adfgvx_dekodieren(eingabetext, pw): ausgabetext += f"_dekodiert mit Variante 9-0,Z-A:_ \n{klartext_90za}" return ausgabetext +# noch nicht implementierte Funktionen: ''' def brainfuck_interpreter(): eingabetext = Eingabe.get(1.0, END) @@ -2722,6 +2723,4 @@ den Code auszuführen.""" + "\n\n") i = loop[-1] i += 1 Ausgabe.insert(1.0, "".join(rv) + "\n") - - ''' diff --git a/docker-compose.yml b/docker-compose.yml index 7af10bf..3cf26d3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,5 +2,5 @@ services: mysteryhelfer-web: build: ./ ports: - - "80:8501" + - "8501:8501" restart: unless-stopped diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..02a1a33 --- /dev/null +++ b/readme.md @@ -0,0 +1,28 @@ +# Logo tebarius Mysteryhelfer (web) + +Dies ist die Umsetzung der [Desktop-App Mysteryhelfer](https://mysteryhelfer.tebarius.duckdns.org/) ([Sourcecode](https://gitea.tebarius.duckdns.org/tebarius/Mysteryhelfer)) als Web-App. + +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: +1. mit vorgebautem Image: + - `docker run --rm -d -p 8501:8501 gitea.tebarius.duckdns.org/tebarius/mysteryhelfer` + +2. mit vorgebautem Image und "docker compose" + - docker-compose.yml erstellen mit folgendem Inhalt: + ``` + services: + mysteryhelfer-web: + image: gitea.tebarius.duckdns.org/tebarius/mysteryhelfer + ports: + - "8501:8501" + restart: unless-stopped + ``` + - `docker compose up` + +3. mit selbst gebautem Image aus dem Quellcode + - `git clone https://gitea.tebarius.duckdns.org/tebarius/Mysteryhelfer-web.git` + - `cd Mysteryhelfer-web` + - `docker compose up` + +bei allen 3 Varianten ist die App anschließend im Browser unter http://127.0.0.1:8501/ aufrufbar \ No newline at end of file