4.3 KiB
4.3 KiB
Wordle‑Cheater (DE)
Hilfs‑Web‑App für deutsche Wordle‑Rätsel. Nutzer geben bekannte Buchstaben/Positionen an, zusätzlich enthaltene und ausgeschlossene Buchstaben. Die App schlägt passende 5‑Buchstaben‑Wörter vor und zeigt die jeweilige Quelle (OT = OpenThesaurus, WF = wordfreq).
Features
- Filter nach Positionen (1–5), enthaltenen und ausgeschlossenen Buchstaben
- Deutsche Wortliste (nur 5 Buchstaben), aus OpenThesaurus und wordfreq gemerged
- Quellen‑Badges je Treffer (OT/WF)
- Zugängliche UI (A11y: Fieldset/Legend, ARIA‑Hinweise, Skip‑Link, semantische Liste)
- SEO‑Metas (Description, Canonical, Open Graph, Twitter)
- Docker‑Image mit Gunicorn
Demo
Wordle-Cheater live bei https://wh.elpatron.me.
Projektstruktur
wordle-helper/
├── app.py # Flask‑App
├── scripts/
│ └── generate_wordlist.py # Generator für Wortliste + Quellen‑JSON
├── templates/
│ └── index.html # UI (Jinja2‑Template)
├── static/
│ └── favicon.svg # Favicon (SVG)
├── data/
│ ├── openthesaurus.txt # Quelle OpenThesaurus (Text)
│ ├── words_de_5.txt # generierte Wortliste
│ └── words_de_5_sources.json # Wort→Quellen (ot/wf)
├── Dockerfile # Produktionsimage (Gunicorn)
├── requirements.txt # Python‑Abhängigkeiten
Für Sysadmins (Betrieb)
Docker (empfohlen)
- Build:
docker build -t wordle-cheater .
- Run (Port 8000):
docker run --rm -p 8000:8000 wordle-cheater
- Health‑Check (lokal):
http://localhost:8000/
Hinweise:
- 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. - Hinter einem Reverse Proxy (z. B. Nginx) betreiben; Beispiel:
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
Ohne Docker (Service)
- Python 3.12 bereitstellen
- Virtuelle Umgebung erstellen, Abhängigkeiten installieren (siehe Entwickler‑Setup)
- Start per Gunicorn:
gunicorn -w 3 -k gthread --threads 2 -b 0.0.0.0:8000 app:app
Für Entwickler (Setup & Workflow)
Voraussetzungen
- Python 3.12
- Windows/PowerShell oder Linux/macOS Terminal
Lokale Installation
Windows PowerShell (Projektwurzel, .venv
):
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt --disable-pip-version-check
Linux/macOS:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt --disable-pip-version-check
Wortliste generieren/aktualisieren
- Quelle:
data/openthesaurus.txt
(optional; wenn fehlt, wird nur wordfreq genutzt) - Generator erzeugt:
data/words_de_5.txt
data/words_de_5_sources.json
Windows PowerShell:
.\.venv\Scripts\python.exe scripts\generate_wordlist.py
Linux/macOS:
python scripts/generate_wordlist.py
Entwicklung starten (Debug‑Server)
Windows PowerShell:
.\.venv\Scripts\python.exe app.py
Linux/macOS:
python app.py
- Browser:
http://127.0.0.1:5000
Docker während der Entwicklung
- Neu bauen, wenn sich
data/openthesaurus.txt
oder der Code ändert:
docker build -t wordle-cheater . && docker run --rm -p 8000:8000 wordle-cheater
Coding‑Hinweise
- Nur 5‑Buchstaben‑Wörter werden berücksichtigt (Regex inkl. ä/ö/ü/ß)
- UI ist serverseitig gerendert (Jinja2)
- Bei jeder Anfrage wird die aktuelle Wortliste geladen; nach Generierung ist kein Neustart nötig
Bekannte Einschränkungen
- Deutsche Morphologie (Pluralbildung etc.) wird nicht generiert, nur was in den Quellen vorhanden ist
- Keine Benutzer‑Accounts, keine Persistenz über die Wortliste hinaus
Lizenz & Credits
- Projektlizenz: MIT (siehe
LICENSE
) - Datenquellen/Lizenzen:
- OpenThesaurus Daten gemäß deren Lizenz (siehe Kopf von
data/openthesaurus.txt
) - wordfreq Python‑Paket gemäß dessen Lizenz
- OpenThesaurus Daten gemäß deren Lizenz (siehe Kopf von