Commit graph

251 commits

Author SHA1 Message Date
Daniel
1bd0fa14bc Streaming: Presets zeigen jetzt Bitrate statt Aufloesung
Aufloesung ist immer nativ (Monitor des Broadcasters), die Presets
steuern nur Bitrate und FPS. Labels entsprechend angepasst:
Niedrig (4 Mbit) bis Max (50 Mbit/165Hz). Dropdown auf 200px.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 21:38:13 +01:00
Daniel
b2f772208f Streaming: 30fps Presets entfernt, Dropdown breiter
Qualitaetsstufen: 720p60, 1080p60, 2K60, 4K60, 4K165 Ultra.
Dropdown von 120px auf 160px verbreitert damit Text nicht abgeschnitten wird.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 21:38:13 +01:00
Daniel
966664d3a7 CI: docker image prune nach jedem Deploy
Entfernt dangling/orphan Images automatisch nach docker pull + deploy.
Verhindert dass sich alte untagged Images ansammeln (~533MB pro Build).

[skip ci]

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 21:37:36 +01:00
GitLab CI
39e180aad4 v1.8.3 [skip ci] 2026-03-08 23:50:31 +00:00
Daniel
ecd5e96ee2 Fix: Gemeinsame Spiele - profileId zu steamId Resolution
Das Multi-Platform Profile System hatte den Common-Games-Endpoint
kaputt gemacht: Client sendete profileIds (UUIDs), Server erwartete
steamIds. Endpoint loest jetzt profileIds korrekt auf.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 00:47:40 +01:00
GitLab CI
7a05676037 v1.8.2 [skip ci] 2026-03-08 23:39:11 +00:00
Daniel
905f156d47 LoLStats: Champion Tier List pro Game Mode (ARAM, Arena, URF, etc.)
Neue op.gg Champion API (lol-api-champion.op.gg) fuer Tier-Daten.
30-Min In-Memory Cache pro Mode+Region. Neuer Bereich unterhalb
der Match History mit Mode-Tabs, Champion-Grid, Tier-Badges und
Filter. Arena-Mode zeigt Avg Placement statt KDA.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 00:36:13 +01:00
GitLab CI
9093f12259 v1.8.1 [skip ci] 2026-03-08 23:23:15 +00:00
Daniel
432f9c610f v1.8.0: README aktualisiert + Version Bump
README komplett ueberarbeitet mit allen 7 Plugins, Electron Desktop App,
Streaming Qualitaets-Presets, aktualisierte Env-Variablen und CI/CD Doku.
Version auf 1.8.0 in VERSION, server, web und electron package.json.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 00:20:07 +01:00
GitLab CI
4960a93e9e v1.7.25 [skip ci] 2026-03-08 23:06:33 +00:00
Daniel
bd5c190cef Streaming: 4K165 Ultra Preset (50 Mbit/s)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 00:03:46 +01:00
GitLab CI
6b635b96ec v1.7.24 [skip ci] 2026-03-08 22:52:56 +00:00
Daniel
22554db36c Fix: Fullscreen vor Viewer-Unmount verlassen
cleanupViewer() ruft jetzt document.exitFullscreen() auf,
bevor der Viewer aus dem DOM entfernt wird. Verhindert
dass die Navbar nach Fullscreen-Stream verschwindet.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 23:50:16 +01:00
GitLab CI
82f03dfa43 v1.7.23 [skip ci] 2026-03-08 21:54:03 +00:00
Daniel
9edc93a0cd Streaming: Qualitäts-Presets (720p30 bis 4K60)
Dropdown im Topbar zum Wählen der Stream-Qualität vor dem Start:
- 720p30 (2.5 Mbit/s), 1080p30 (5), 1080p60 (8), 1440p60 (14), 4K60 (25)
- Steuert getDisplayMedia-Constraints + WebRTC maxBitrate/maxFramerate
- Default: 1080p60 (wie bisher)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 22:51:05 +01:00
GitLab CI
9c286ee877 v1.7.22 [skip ci] 2026-03-08 20:02:34 +00:00
Daniel
cd358112aa CI: DISCORD_TOKEN_NOTIFICATIONS + PUBLIC_URL in Deploy-Stage
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 20:59:20 +01:00
GitLab CI
e349d0bbce v1.7.21 [skip ci] 2026-03-08 19:51:50 +00:00
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