Devlog-Endpoint: Bot postet Devlogs selbst — gebrandet, mit Bilder-Grid

- POST /webhooks/devlog/<secret> — Discord-Webhook-kompatibel (JSON + Multipart),
  devlog.py braucht nur die neue URL in tools/.devlog_webhook
- Bot postet Embed in Brand-Gelb mit 'D4RKST3R // DEVLOG'-Footer, bis zu 4 Bilder
  als Grid (Embed-Gruppierung über gemeinsame URL)
- Direkt-Archivierung inkl. Bilder (kein Umweg über den Live-Listener)
- Neue Env-Var DEVLOG_POST_SECRET, README-Abschnitt neu geschrieben

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-23 01:09:49 +02:00
co-authored by Claude Opus 4.8
parent ed69d859ca
commit bf0eca3546
8 changed files with 202 additions and 15 deletions
+21 -13
View File
@@ -97,22 +97,30 @@ derselben Commits erzeugt keine doppelten DB-Einträge.
---
## Setup: Devlog-Archiv
## Setup: Devlog (Bot postet + archiviert)
`tools/devlog.py` (EcoGame-Repo) postet weiterhin unverändert per Discord-Webhook
in den Devlog-Kanal — der Bot liest dort mit und archiviert jede Webhook-Nachricht
in SQLite (User-Chatter im Kanal wird ignoriert).
Der Bot ist das Tagebuch: `tools/devlog.py` (EcoGame-Repo) schickt sein Devlog an
den **Bot-Endpoint** (Discord-Webhook-kompatibel), der Bot postet ein gebrandetes
Embed (Gelb, „D4RKST3R // DEVLOG"-Footer, bis zu 4 Bilder als Grid) in den
Devlog-Kanal und archiviert Text + Bilder in SQLite.
1. **Message Content Intent** muss im
[Developer Portal](https://discord.com/developers/applications) unter **Bot**
aktiviert sein (steht oben schon im Setup — kurz prüfen)
2. `.env` / Portainer-Stack: `DEVLOG_CHANNEL_ID` = Kanal-ID des Devlog-Kanals
3. Bot neu starten → ab jetzt wird jedes neue Devlog automatisch archiviert
4. Einmalig in Discord: **`/devlog-backfill`** (Admin only) — scannt die komplette
Kanal-Historie und archiviert alle bisherigen Devlogs nach
1. `.env` / Portainer-Stack:
- `DEVLOG_CHANNEL_ID` = Kanal-ID des Devlog-Kanals
- `DEVLOG_POST_SECRET` = generieren:
`node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"`
2. Im EcoGame-Repo in `tools/.devlog_webhook` statt der Discord-URL eintragen:
```
https://bot.d4rkst3r.de/webhooks/devlog/<DEVLOG_POST_SECRET>
```
`devlog.py` selbst bleibt unverändert — der Endpoint versteht das
Discord-Webhook-Format (JSON + Multipart mit Bildern).
3. Den alten Discord-Webhook im Devlog-Kanal löschen (wird nicht mehr gebraucht)
Dedupe läuft über die Discord-Message-ID — Backfill und Live-Listener
können sich nicht doppeln, der Command ist beliebig oft wiederholbar.
**Zusätzlich** liest der Bot den Kanal live mit und archiviert auch fremde
Webhook-/Bot-Posts (dafür: **Message Content Intent** im Developer Portal aktiv).
**`/devlog-backfill`** (Admin) archiviert die Kanal-Historie nach.
Dedupe läuft über die Discord-Message-ID — alles beliebig wiederholbar.
Bilder werden lokal gespeichert (`data/devlog_images/`), weil Discord-CDN-Links ablaufen.
---