Add blank lines

This commit is contained in:
2025-08-19 11:55:49 +02:00
parent 515fcd3163
commit 158b644e45

View File

@@ -3,6 +3,7 @@
HilfsWebApp für deutsche WordleRätsel. Nutzer geben bekannte Buchstaben/Positionen an, zusätzlich enthaltene und ausgeschlossene Buchstaben. Die App schlägt passende 5BuchstabenWörter vor und zeigt die jeweilige Quelle (OT = OpenThesaurus, WF = wordfreq). HilfsWebApp für deutsche WordleRätsel. Nutzer geben bekannte Buchstaben/Positionen an, zusätzlich enthaltene und ausgeschlossene Buchstaben. Die App schlägt passende 5BuchstabenWörter vor und zeigt die jeweilige Quelle (OT = OpenThesaurus, WF = wordfreq).
## Features ## Features
- Filter nach Positionen (15), enthaltenen und ausgeschlossenen Buchstaben - Filter nach Positionen (15), enthaltenen und ausgeschlossenen Buchstaben
- Deutsche Wortliste (nur 5 Buchstaben), aus OpenThesaurus und wordfreq gemerged - Deutsche Wortliste (nur 5 Buchstaben), aus OpenThesaurus und wordfreq gemerged
- QuellenBadges je Treffer (OT/WF) - QuellenBadges je Treffer (OT/WF)
@@ -11,6 +12,7 @@ HilfsWebApp für deutsche WordleRätsel. Nutzer geben bekannte Buchstab
- DockerImage mit Gunicorn - DockerImage mit Gunicorn
## Projektstruktur ## Projektstruktur
``` ```
app.py # FlaskApp app.py # FlaskApp
scripts/generate_wordlist.py # Generator für Wortliste + QuellenJSON scripts/generate_wordlist.py # Generator für Wortliste + QuellenJSON
@@ -28,20 +30,26 @@ requirements.txt # PythonAbhängigkeiten
## Für Sysadmins (Betrieb) ## Für Sysadmins (Betrieb)
### Docker (empfohlen) ### Docker (empfohlen)
- Build: - Build:
```bash ```bash
docker build -t wordle-cheater . docker build -t wordle-cheater .
``` ```
- Run (Port 8000): - Run (Port 8000):
```bash ```bash
docker run --rm -p 8000:8000 wordle-cheater docker run --rm -p 8000:8000 wordle-cheater
``` ```
- HealthCheck (lokal): `http://localhost:8000/` - HealthCheck (lokal): `http://localhost:8000/`
Hinweise: Hinweise:
- Das Image generiert die Wortliste beim Build. Wird `data/openthesaurus.txt` aktualisiert, Image neu bauen. - Das Image generiert die Wortliste beim Build. Wird `data/openthesaurus.txt` aktualisiert, Image neu bauen.
- Gunicorn startet mit 3 Worker (`gthread`, 2 Threads). Passen Sie Worker/Threads an Ihre CPU an. - Gunicorn startet mit 3 Worker (`gthread`, 2 Threads). Passen Sie Worker/Threads an Ihre CPU an.
- Hinter einem Reverse Proxy (z.B. Nginx) betreiben; Beispiel: - Hinter einem Reverse Proxy (z.B. Nginx) betreiben; Beispiel:
```nginx ```nginx
location / { location / {
proxy_pass http://127.0.0.1:8000; proxy_pass http://127.0.0.1:8000;
@@ -55,6 +63,7 @@ location / {
- Python 3.12 bereitstellen - Python 3.12 bereitstellen
- Virtuelle Umgebung erstellen, Abhängigkeiten installieren (siehe EntwicklerSetup) - Virtuelle Umgebung erstellen, Abhängigkeiten installieren (siehe EntwicklerSetup)
- Start per Gunicorn: - Start per Gunicorn:
```bash ```bash
gunicorn -w 3 -k gthread --threads 2 -b 0.0.0.0:8000 app:app gunicorn -w 3 -k gthread --threads 2 -b 0.0.0.0:8000 app:app
``` ```
@@ -64,16 +73,21 @@ gunicorn -w 3 -k gthread --threads 2 -b 0.0.0.0:8000 app:app
## Für Entwickler (Setup & Workflow) ## Für Entwickler (Setup & Workflow)
### Voraussetzungen ### Voraussetzungen
- Python 3.12 - Python 3.12
- Windows/PowerShell oder Linux/macOS Terminal - Windows/PowerShell oder Linux/macOS Terminal
### Lokale Installation ### Lokale Installation
Windows PowerShell (Projektwurzel, `.venv`): Windows PowerShell (Projektwurzel, `.venv`):
```powershell ```powershell
python -m venv .venv python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt --disable-pip-version-check .\.venv\Scripts\python.exe -m pip install -r requirements.txt --disable-pip-version-check
``` ```
Linux/macOS: Linux/macOS:
```bash ```bash
python3 -m venv .venv python3 -m venv .venv
source .venv/bin/activate source .venv/bin/activate
@@ -81,47 +95,61 @@ pip install -r requirements.txt --disable-pip-version-check
``` ```
### Wortliste generieren/aktualisieren ### Wortliste generieren/aktualisieren
- Quelle: `data/openthesaurus.txt` (optional; wenn fehlt, wird nur wordfreq genutzt) - Quelle: `data/openthesaurus.txt` (optional; wenn fehlt, wird nur wordfreq genutzt)
- Generator erzeugt: - Generator erzeugt:
- `data/words_de_5.txt` - `data/words_de_5.txt`
- `data/words_de_5_sources.json` - `data/words_de_5_sources.json`
Windows PowerShell: Windows PowerShell:
```powershell ```powershell
.\.venv\Scripts\python.exe scripts\generate_wordlist.py .\.venv\Scripts\python.exe scripts\generate_wordlist.py
``` ```
Linux/macOS: Linux/macOS:
```bash ```bash
python scripts/generate_wordlist.py python scripts/generate_wordlist.py
``` ```
### Entwicklung starten (DebugServer) ### Entwicklung starten (DebugServer)
Windows PowerShell: Windows PowerShell:
```powershell ```powershell
.\.venv\Scripts\python.exe app.py .\.venv\Scripts\python.exe app.py
``` ```
Linux/macOS: Linux/macOS:
```bash ```bash
python app.py python app.py
``` ```
- Browser: `http://127.0.0.1:5000` - Browser: `http://127.0.0.1:5000`
### Docker während der Entwicklung ### Docker während der Entwicklung
- Neu bauen, wenn sich `data/openthesaurus.txt` oder der Code ändert: - Neu bauen, wenn sich `data/openthesaurus.txt` oder der Code ändert:
```bash ```bash
docker build -t wordle-cheater . && docker run --rm -p 8000:8000 wordle-cheater docker build -t wordle-cheater . && docker run --rm -p 8000:8000 wordle-cheater
``` ```
### CodingHinweise ### CodingHinweise
- Nur 5BuchstabenWörter werden berücksichtigt (Regex inkl. ä/ö/ü/ß) - Nur 5BuchstabenWörter werden berücksichtigt (Regex inkl. ä/ö/ü/ß)
- UI ist serverseitig gerendert (Jinja2) - UI ist serverseitig gerendert (Jinja2)
- Bei jeder Anfrage wird die aktuelle Wortliste geladen; nach Generierung ist kein Neustart nötig - Bei jeder Anfrage wird die aktuelle Wortliste geladen; nach Generierung ist kein Neustart nötig
### Bekannte Einschränkungen ### Bekannte Einschränkungen
- Deutsche Morphologie (Pluralbildung etc.) wird nicht generiert, nur was in den Quellen vorhanden ist - Deutsche Morphologie (Pluralbildung etc.) wird nicht generiert, nur was in den Quellen vorhanden ist
- Keine BenutzerAccounts, keine Persistenz über die Wortliste hinaus - Keine BenutzerAccounts, keine Persistenz über die Wortliste hinaus
## Lizenz & Credits ## Lizenz & Credits
- OpenThesaurus Daten gemäß deren Lizenz (siehe Kopf von `data/openthesaurus.txt`) - OpenThesaurus Daten gemäß deren Lizenz (siehe Kopf von `data/openthesaurus.txt`)
- wordfreq PythonPaket gemäß dessen Lizenz - wordfreq PythonPaket gemäß dessen Lizenz
- Eigenes Projekt: (bitte ggf. Lizenz ergänzen) - Eigenes Projekt: MIT