6 Commits

Author SHA1 Message Date
b60316750a adding image-release on docker hub to ci-pipeline 2025-11-23 17:55:50 +01:00
013a6b298e Merge pull request 'pump to' (#4) from update_dependencies into main
Reviewed-on: #4
2025-11-16 11:55:27 +01:00
f1dce2417f pump to
streamlit==1.51.0
streamlit-folium==0.25.3
pandas==2.3.3
matplotlib~=3.10.7
numpy~=2.3.4
and automatic pip-upgrade while build container
2025-11-16 11:51:11 +01:00
9947c205c7 update versions of requirements 2025-09-28 16:43:33 +02:00
8510169495 erweiterung zeichenzählen 2025-08-30 13:37:00 +02:00
c88e673759 fix output for remorse_en and t9_en 2025-08-24 20:54:28 +02:00
5 changed files with 44 additions and 13 deletions

View File

@@ -6,11 +6,11 @@ on:
image_tag: image_tag:
description: '2. Tag für das Docker-Image (außer latest) (z.B. v1.0.0)' description: '2. Tag für das Docker-Image (außer latest) (z.B. v1.0.0)'
required: true required: true
default: '0.7.0' default: '0.7.3'
env: env:
image_name: mysteryhelfer image_name: mysteryhelfer
registry: gitea.tebarius.duckdns.org registry_gitea: gitea.tebarius.duckdns.org
user: tebarius user: tebarius
jobs: jobs:
@@ -26,9 +26,15 @@ jobs:
- name: Login to Gitea - name: Login to Gitea
uses: docker/login-action@v2 uses: docker/login-action@v2
with: with:
registry: ${{ env.registry }} registry: ${{ env.registry_gitea }}
username: ${{ env.user }} username: ${{ env.user }}
password: ${{ secrets.DOCKER_PULL_TOKEN }} password: ${{ secrets.IMAGE_REGISTRY_TOKEN_GITEA }}
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ env.user }}
password: ${{ secrets.DOCKER_HUB_TOKEN }}
- name: Build and push - name: Build and push
run: | run: |
@@ -39,6 +45,8 @@ jobs:
docker buildx build \ docker buildx build \
--file ./Dockerfile \ --file ./Dockerfile \
--platform linux/amd64,linux/arm64 \ --platform linux/amd64,linux/arm64 \
--tag ${{ env.registry }}/${{ env.user }}/${{ env.image_name }}:latest \ --tag ${{ env.registry_gitea }}/${{ env.user }}/${{ env.image_name }}:latest \
--tag ${{ env.registry }}/${{ env.user }}/${{ env.image_name }}:${{ github.event.inputs.image_tag }} \ --tag ${{ env.registry_gitea }}/${{ env.user }}/${{ env.image_name }}:${{ github.event.inputs.image_tag }} \
--tag ${{ env.user }}/${{ env.image_name }}:latest \
--tag ${{ env.user }}/${{ env.image_name }}:${{ github.event.inputs.image_tag }} \
--push ./ --push ./

View File

@@ -10,6 +10,7 @@ RUN apt-get update \
&& apt-get clean \ && apt-get clean \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
RUN python -m pip install --upgrade pip
COPY requirements.txt . COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt RUN pip install --no-cache-dir -r requirements.txt

View File

@@ -172,11 +172,14 @@ def zeichenanzahl(eingabetext):
else: else:
anzahl[b] = 1 anzahl[b] = 1
s = [] s = []
zeichensumme = 0
for key in anzahl: for key in anzahl:
s.append(key) s.append(key)
zeichensumme += anzahl[key]
s.sort() s.sort()
ausgabetext += f"Es wurden __:orange[{len(anzahl)}]__ unterschiedliche Zeichen gefunden. \n" ausgabetext += (f"Es wurden __:orange[{len(anzahl)}]__ unterschiedliche Zeichen in insgesamt "
ausgabetext += "| :blue[Zeichen] | :blue[Anzahl] |\n|----|----|\n" f"__:orange[{zeichensumme}]__ Zeichen gefunden. \n"
f"| :blue[Zeichen] | :blue[Anzahl] |\n|----|----|\n")
for i in s: for i in s:
if ord(i) == 9: if ord(i) == 9:
ausgabetext += f"|TAB|{anzahl[i]}|\n" ausgabetext += f"|TAB|{anzahl[i]}|\n"
@@ -1501,6 +1504,7 @@ def remorse_en(eingabetext):
ausgabetext = ":blue[der eingegebene Morsecode kann für folgendes stehen:] \n" ausgabetext = ":blue[der eingegebene Morsecode kann für folgendes stehen:] \n"
if eingabetext in ualphabet: if eingabetext in ualphabet:
ausgabetext += ualphabet[eingabetext] + " \n" ausgabetext += ualphabet[eingabetext] + " \n"
count = 0
for zeile in wbfile: for zeile in wbfile:
zeile = zeile.strip(" \t\n\r") zeile = zeile.strip(" \t\n\r")
mzeile = "" mzeile = ""
@@ -1511,7 +1515,11 @@ def remorse_en(eingabetext):
continue continue
if eingabetext == mzeile: if eingabetext == mzeile:
ausgabetext += zeile + " \n" ausgabetext += zeile + " \n"
count += 1
wbfile.close() wbfile.close()
if count == 0:
return ":red[leider nichts gefunden :disappointed:]"
else:
return ausgabetext return ausgabetext
def t9_de(eingabetext): def t9_de(eingabetext):
@@ -1553,6 +1561,7 @@ def t9_en(eingabetext):
return ":red[Leider konnte die Wörterbuchdatei nicht geladen werden.]" return ":red[Leider konnte die Wörterbuchdatei nicht geladen werden.]"
else: else:
ausgabetext = ":blue[der eingegebene T9-Code kann für folgendes stehen:] \n" ausgabetext = ":blue[der eingegebene T9-Code kann für folgendes stehen:] \n"
count = 0
for zeile in wbfile: for zeile in wbfile:
zeile = zeile.strip(" \t\n\r") zeile = zeile.strip(" \t\n\r")
mzeile = "" mzeile = ""
@@ -1563,7 +1572,11 @@ def t9_en(eingabetext):
continue continue
if eingabetext == mzeile: if eingabetext == mzeile:
ausgabetext += zeile + " \n" ausgabetext += zeile + " \n"
count += 1
wbfile.close() wbfile.close()
if count == 0:
return ":red[leider nichts gefunden :disappointed:]"
else:
return ausgabetext return ausgabetext
def vigenere(eingabetext, pw): def vigenere(eingabetext, pw):

View File

@@ -7,7 +7,7 @@ Für die Umsetzung kommt das Python-Framework [Streamlit](https://streamlit.io/)
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_): 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`
- alternativ (via Docker Hub): `docker run --rm -d -p 8501:8501 tebarius/mysteryhelfer`
2. mit vorgebautem Image und "docker compose" 2. mit vorgebautem Image und "docker compose"
- docker-compose.yml erstellen mit folgendem Inhalt: - docker-compose.yml erstellen mit folgendem Inhalt:
``` ```
@@ -18,12 +18,21 @@ Der einfachst Weg, um die App lokal laufen zu lassen, ist mit Docker, wobei ich
- "8501:8501" - "8501:8501"
restart: unless-stopped restart: unless-stopped
``` ```
- `docker compose up` alternativ (via Docker Hub):
```
services:
mysteryhelfer-web:
image: tebarius/mysteryhelfer
ports:
- "8501:8501"
restart: unless-stopped
```
- `docker compose up -d`
3. mit selbst gebautem Image aus dem Quellcode 3. mit selbst gebautem Image aus dem Quellcode
- `git clone https://gitea.tebarius.duckdns.org/tebarius/Mysteryhelfer-web.git` - `git clone https://gitea.tebarius.duckdns.org/tebarius/Mysteryhelfer-web.git`
- `cd Mysteryhelfer-web` - `cd Mysteryhelfer-web`
- `docker compose up` - `docker compose up -d`
bei allen 3 Varianten ist die App anschließend im Browser unter http://127.0.0.1:8501/ aufrufbar bei allen 3 Varianten ist die App anschließend im Browser unter http://127.0.0.1:8501/ aufrufbar

Binary file not shown.