diff --git a/meta-handler.js b/meta-handler.js index 648dc61..84e6bec 100644 --- a/meta-handler.js +++ b/meta-handler.js @@ -1,3 +1,8 @@ +/** + * meta-handler.js + * Verwaltet das Abrufen und Anzeigen von Stream-Metadaten (Songtitel) + */ + const MetaHandler = { proxyPath: 'metadata.php', updateInterval: 20000, @@ -29,36 +34,37 @@ const MetaHandler = { updateUI(title) { const stationDisplay = document.getElementById('current-station-name'); if (!stationDisplay) return; - - let currentFullText = stationDisplay.textContent; - let stationNameOnly = currentFullText.replace('Es läuft: ', '').split(' – ')[0].trim(); - + + // 1. Alles vor dem Titel extrahieren (enthält das Sender-Icon + Name) + let currentContent = stationDisplay.innerHTML; + // Wir isolieren den Sender-Teil, indem wir alles nach dem Music-Icon oder Trenner-Span abschneiden + let stationPart = currentContent.split(' ${title}`; }, start(streamUrl) { this.stop(); - // Wir rufen fetchTitle direkt auf, um die PHP-Verbindung zu testen - MetaHandler.fetchTitle(streamUrl); + // Erster Aufruf sofort + this.fetchTitle(streamUrl); this.intervalId = setInterval(() => { - MetaHandler.fetchTitle(streamUrl); + this.fetchTitle(streamUrl); }, this.updateInterval); }, @@ -67,9 +73,15 @@ const MetaHandler = { clearInterval(this.intervalId); this.intervalId = null; } + const stationDisplay = document.getElementById('current-station-name'); - if (stationDisplay && stationDisplay.textContent.includes(' – ')) { - stationDisplay.textContent = stationDisplay.textContent.split(' – ')[0]; + if (stationDisplay) { + // Entfernt alles ab dem Musik-Icon oder dem alten Bindestrich + if (stationDisplay.innerHTML.includes('