Commit graph

258 commits

Author SHA1 Message Date
GitLab CI
4b23d013f9 v1.8.5 [skip ci] 2026-03-09 21:02:15 +00:00
Daniel
e9931d82af Refactor: Zentralisiertes Admin-Login im Top-Menü
- Admin-Login aus 3 Plugins (Soundboard, Streaming, Game Library) entfernt
- Zentraler 🔒/🔓 Button im Header mit Login-Modal
- isAdmin wird als Prop an alle Plugins weitergegeben
- Settings-Buttons (Gear-Icons) nur sichtbar wenn eingeloggt
- Alle Plugins nutzen weiterhin den shared admin-Cookie für Operationen
- Login/Logout-Formulare und Buttons aus Plugin-Panels entfernt

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 21:59:21 +01:00
GitLab CI
bccfee3de2 v1.8.4 [skip ci] 2026-03-09 20:47:59 +00:00
Daniel
b556863f52 Fix: Admin-Button entfernt der auf main nicht existierende State-Variablen referenzierte
Cherry-Pick von 041557c8 hatte versehentlich Admin-Button JSX mit übernommen,
aber adminLoggedIn/setShowAdminModal existieren nur auf nightly (nach b3080fb7).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 21:44:33 +01:00
Daniel
65a1d6e869 Streaming: Qualitaets-Dropdown schmaler (250px -> 210px)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 21:38:44 +01:00
Daniel
e54f240523 Streaming: fps bei allen Qualitaetsstufen anzeigen
Labels: Niedrig · 4 Mbit · 60fps bis Max · 50 Mbit · 165fps.
Dropdown auf 250px verbreitert.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 21:38:44 +01:00
Daniel
a99dc4211c UI: Avatar entfernt, Streaming-Topbar mit Labels
- DK-Avatar aus Header entfernt (kein Zweck)
- Streaming-Felder haben jetzt Ueberschriften: Name, Titel, Passwort, Qualitaet
- Passwort-Feld von 140px auf 180px verbreitert
- Topbar aligned an Feldunterkante (flex-end)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 21:38:44 +01:00
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