Commit graph

183 commits

Author SHA1 Message Date
Daniel
1c674191c9 Fix: Stream-Link Auto-Join Race Condition + Autoplay
- remoteStreamRef speichert MediaStream aus ontrack, damit er nicht
  verloren geht wenn das <video>-Element noch nicht gemountet ist
- useEffect verbindet Stream mit Video sobald beides bereit ist
- Explizites play() mit Mute-Fallback bei Autoplay-Blockierung
  (neuer Tab ohne User-Interaktion, z.B. Discord-Link)
- Debug-Logging aus Notification-Config entfernt

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 20:48:31 +01:00
GitLab CI
bc6ec39dfd v1.7.20 [skip ci] 2026-03-08 19:34:36 +00:00
Daniel
e3ad35fbc7 Refresh-Button neben Version in Header
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 20:30:10 +01:00
GitLab CI
e1860cbd99 v1.7.19 [skip ci] 2026-03-08 19:27:55 +00:00
Daniel
34e193fb92 Debug: Notification config save/toggle logging
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 20:24:51 +01:00
GitLab CI
1d409af0ee v1.7.18 [skip ci] 2026-03-08 19:15:55 +00:00
GitLab CI
ea3e096fd1 v1.7.17 [skip ci] 2026-03-08 19:15:46 +00:00
Daniel
59e7f11162 Notifications: guild.channels.fetch() statt .cache für vollständige Channel-Liste
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 20:12:51 +01:00
Daniel
1bcfef68fe Navbar: Nur Plugins mit Frontend-Component als Tab anzeigen
Filtert Backend-only Plugins (z.B. Notifications) aus der Tab-Leiste.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 20:11:19 +01:00
GitLab CI
cdb5b41be0 v1.7.16 [skip ci] 2026-03-08 18:32:55 +00:00
Daniel
1cf79ef917 Notification-Bot: Discord-Benachrichtigungen für Streams
- Neues Notification-Plugin mit eigenem Discord-Bot
- Admin-Modal im Streaming-Tab für Channel-Konfiguration
- Automatische Benachrichtigungen bei Stream-Start/Ende
- Stream-Links mit Passwort-Hinweis in Discord-Embeds
- Konfigurierbare Events pro Channel (stream_start, stream_end)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 19:29:52 +01:00
GitLab CI
b25ae7990b v1.7.15 [skip ci] 2026-03-08 18:14:23 +00:00
Daniel
2c570febd1 Soundboard: Drag & Drop mit Rename-Modal
- MP3/WAV per Drag & Drop ablegen öffnet jetzt ein Rename-Modal
- Jede Datei einzeln benennen vor dem Upload (sequentiell bei mehreren)
- Server-Upload-Endpoint unterstützt optionalen customName Parameter
- Reuse der bestehenden dl-modal CSS-Klassen für konsistentes Design
- Überspringen-Option bei mehreren Dateien

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 19:11:23 +01:00
GitLab CI
86874daf57 v1.7.14 [skip ci] 2026-03-08 18:03:27 +00:00
Daniel
59428a2c65 Steam-Button nur in Übersicht anzeigen, nicht im Profil-Detail
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 19:00:36 +01:00
GitLab CI
64e5784d43 v1.7.13 [skip ci] 2026-03-08 17:56:51 +00:00
Daniel
962ea9ebfc GOG-Button nur im Profil-Detail anzeigen
GOG kann nur innerhalb eines bestehenden Profils verknuepft werden,
damit der Account dem richtigen Spieler zugeordnet wird.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 18:53:54 +01:00
GitLab CI
39932cb5bb v1.7.12 [skip ci] 2026-03-08 15:55:53 +00:00
Daniel
71b35d573e Game Library: Admin-Panel, Disconnect-UI, IGDB-Cache
- Admin-Panel mit Login (gleiches Passwort wie Soundboard) zum Entfernen
  von Profilen inkl. aller verknuepften Daten
- Disconnect-Buttons im Profil-Detail: Steam/GOG einzeln trennbar
- IGDB persistenter File-Cache (ueberlebt Server-Neustarts)
- SSE-Broadcast-Format korrigiert (buildProfileSummaries shared helper)
- DELETE-Endpoints fuer Profil/Steam/GOG Trennung

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 16:53:10 +01:00
GitLab CI
d2f2607c06 v1.7.11 [skip ci] 2026-03-08 15:38:38 +00:00
Daniel
68783ce040 CI: Electron-Build beschleunigt (~5min → ~2min)
- Custom Image electron-builder:latest (Mono + Docker CLI vorinstalliert)
- pull_policy: if-not-present (lokales Image, kein Registry-Pull)
- GitLab CI Cache für node_modules
- npm/Electron Cache-Verzeichnisse in /cache/
- npm ci --prefer-offline nutzt Cache wenn vorhanden
- before_script entfällt komplett (kein apt-get, kein curl)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 16:35:51 +01:00
GitLab CI
5b61cd5078 v1.7.10 [skip ci] 2026-03-08 15:34:24 +00:00
GitLab CI
f25690d88e v1.7.9 [skip ci] 2026-03-08 15:32:32 +00:00
Daniel
6d3051df04 Fix GOG Auth: Korrektes Client-Secret
Das bisherige client_secret war fehlerhaft (falsche Endbytes).
Korrigiert anhand der offiziellen GOG API-Dokumentation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 16:30:56 +01:00
Daniel
d909909591 Auto-Updater: Doppelstart verhindern + Download-Status sichtbar
- State-Tracking im Main-Prozess (idle/checking/downloading/ready)
- Manueller Check gibt aktuellen Status zurück statt Squirrel-Doppelstart
- Auto-Check nur wenn idle (kein Konflikt mit laufendem Download)
- Frontend synchronisiert Status beim Mount und Modal-Öffnen
- getUpdateStatus IPC für synchrone Status-Abfrage

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 16:27:35 +01:00
GitLab CI
2c6ac0745d v1.7.8 [skip ci] 2026-03-08 15:22:39 +00:00
Daniel
a05f3a0163 Auto-Updater: Separate Update-URL entfernt
/downloads ist per Pangolin Path-Rule ohne Auth erreichbar,
daher braucht der Auto-Updater keine eigene Subdomain mehr.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 16:17:40 +01:00
GitLab CI
04e8e5b07f v1.7.7 [skip ci] 2026-03-08 13:53:05 +00:00
Daniel
e4c3586ef3 Auto-Updater: Separate Update-URL (updates.daddelolymp.de) fuer Pangolin-Bypass
- UPDATE_URL getrennt von HUB_URL (kein Pangolin-Auth fuer Squirrel)
- GOG Exchange laeuft jetzt ueber Renderer-Fetch (hat Pangolin-Session-Cookie)
- Konfigurierbar via GAMING_HUB_UPDATE_URL env var

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 14:48:37 +01:00
GitLab CI
cad4f40c53 v1.7.6 [skip ci] 2026-03-08 13:45:51 +00:00
Daniel
3e8febb851 GOG Login: Nahtloser Auth-Flow wie Steam (kein Code-Paste noetig)
- Electron: Fängt GOG Redirect automatisch ab (will-redirect Interceptor)
- Code-Exchange passiert im Hintergrund, User sieht nur Erfolgs-Popup
- GOG Auth-URLs (auth.gog.com, login.gog.com, embed.gog.com) in Popup erlaubt
- Server: GET /gog/login Redirect + POST /gog/exchange Endpoint
- Browser-Fallback: Code-Paste Dialog falls nicht in Electron
- gog.ts: Feste redirect_uri (embed.gog.com/on_login_success)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 14:41:21 +01:00
GitLab CI
af2448a5bd v1.7.5 [skip ci] 2026-03-08 11:37:42 +00:00
Daniel
ee5c29dd7b Game Library: Multi-Platform Profile System + GOG Integration
- Neues Profile-System: User können Steam und GOG verknüpfen
- GOG OAuth2 Login-Flow (auth.gog.com)
- GOG API Service (gog.ts): Token-Management, Spieleliste, User-Info
- Server: Profile-Datenmodell, Migration bestehender Steam-Users
- Frontend: Login-Bar (Steam + GOG), Profile-Chips mit Platform-Badges
- Cross-Platform Game-Merging mit Deduplizierung
- Profile-Detail mit "GOG verknüpfen" Option

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 12:34:43 +01:00
GitLab CI
89e655482b v1.7.4 [skip ci] 2026-03-08 09:45:15 +00:00
Daniel
f64aac707a Game Library: Genre-Filter + Sortierung (Spielzeit/Bewertung/Name)
- Genre-Chips als Filter-Bar in User- und Common-Games-Ansicht
- Sortierung umschaltbar: Spielzeit, Bewertung, Name
- Multi-Genre-Auswahl mit "Alle"-Reset
- Common Games zeigen jetzt auch Genres und Ratings

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 10:42:21 +01:00
GitLab CI
94820ed110 v1.7.3 [skip ci] 2026-03-08 01:05:22 +00:00
GitLab CI
0df6656a0c v1.7.2 [skip ci] 2026-03-08 01:04:58 +00:00
GitLab CI
e1913a8555 v1.7.1 [skip ci] 2026-03-08 01:03:08 +00:00
Daniel
d6973c811c Entferne Plattform-Badges aus Game Library
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 02:01:46 +01:00
Daniel
9f2ea74189 v1.7.0 — IGDB-Integration, Streaming, Electron Updates
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 02:00:40 +01:00
Daniel
4994d5c245 IGDB auto-enrichment: Server-Start + Frontend auto-trigger
- Server enriched bestehende User beim Plugin-Start automatisch (fire-and-forget)
- Frontend triggert IGDB-Enrichment automatisch beim Öffnen einer User-Bibliothek
- Reduzierte Log-Ausgabe (kein Spam pro Cache-Hit mehr)
- IGDB-Button zeigt Lade-Animation während Enrichment

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 01:58:11 +01:00
GitLab CI
916006e815 v1.6.15 [skip ci] 2026-03-08 00:51:38 +00:00
Daniel
b404c20eca IGDB-Integration für Game Library + Electron Update-Button im Version-Modal
- Neues IGDB-Service-Modul (igdb.ts): Token-Management, Rate-Limiting, Game-Lookup per Steam-AppID/Name, Batch-Enrichment mit In-Memory-Cache
- Server: 2 neue Routes (/igdb/enrich/:steamId, /igdb/game/:appid), Auto-Enrichment bei Steam-Login und Refresh
- Frontend: IGDB-Cover, Genre-Tags, Plattform-Badges, farbcodiertes Rating, IGDB-Anreichern-Button
- Version-Modal: Update-Button für Electron-App (checkForUpdates/installUpdate), Desktop-App-Version anzeigen
- CSS: Styles für IGDB-Elemente und Update-UI

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 01:48:27 +01:00
GitLab CI
aec1142bff v1.6.14 [skip ci] 2026-03-07 23:31:11 +00:00
Daniel
2a81bc216b Fix: Electron Screen-Picker nutzt jetzt temp-Datei statt data: URL
- data:text/html URLs werden in Electron BrowserWindows blockiert
- Picker-HTML wird jetzt als temp-Datei geschrieben und via loadFile geladen
- IPC-Kommunikation statt page-title-updated für die Source-Auswahl
- nodeIntegration nur im Picker-Fenster aktiviert (nicht im Hauptfenster)
- Temp-Datei wird nach Auswahl/Abbruch automatisch gelöscht

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 00:26:39 +01:00
GitLab CI
5f756a5404 v1.6.13 [skip ci] 2026-03-07 23:21:20 +00:00
Daniel
e146a28416 Streaming: Bildschirmauswahl-Picker, Passwort optional, Windows-Toast-Notifications
- Electron: setDisplayMediaRequestHandler zeigt jetzt immer einen modalen Picker
  mit Thumbnails statt automatisch die letzte Quelle zu verwenden
- Passwort bei Streams ist jetzt optional (Server + Frontend)
- Streams ohne Passwort: direkter Beitritt ohne Modal
- hasPassword wird korrekt im stream_available Event übertragen
- Windows Toast-Notifications via Electron Notification API für
  "Stream gestartet" und "Neuer Stream" Events
- Browser-Variante nutzt weiterhin Web Notification API

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 00:16:48 +01:00
GitLab CI
fa964318f2 v1.6.12 [skip ci] 2026-03-07 22:58:49 +00:00
Daniel
dec6be5476 Fix: Seek funktioniert jetzt für alle User — report_time überschreibt Seek nicht mehr
- Server: report_time ignoriert Host-Updates für 2s nach einem Seek
- Frontend: seekingRef Guard auf 3s erhöht um Sync-Pulse-Rücksetzung zu verhindern

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 23:56:04 +01:00
GitLab CI
463b92dc38 v1.6.11 [skip ci] 2026-03-07 22:52:23 +00:00