Update meta-handler.js

This commit is contained in:
simonpipe 2025-12-18 19:10:24 +01:00
parent 5db8022fbc
commit ee9da63294

View file

@ -35,12 +35,13 @@ const MetaHandler = {
const stationDisplay = document.getElementById('current-station-name'); const stationDisplay = document.getElementById('current-station-name');
if (!stationDisplay) return; if (!stationDisplay) return;
// 1. Alles vor dem Titel extrahieren (enthält das Sender-Icon + Name) // 1. Alles vor dem Songtitel isolieren
let currentContent = stationDisplay.innerHTML; let currentContent = stationDisplay.innerHTML;
// Wir isolieren den Sender-Teil, indem wir alles nach dem Music-Icon oder Trenner-Span abschneiden
let stationPart = currentContent.split(' <span')[0].split(' <i class="fa-solid fa-music"')[0].trim();
// 2. Dubletten-Check (Text ohne Icons vergleichen) // Wir suchen nach dem Icon oder dem geschützten Leerzeichen und schneiden dort ab
let stationPart = currentContent.split('&nbsp;')[0].split(' <i class="fa-solid fa-music"')[0].trim();
// 2. Dubletten-Check
const tempDiv = document.createElement("div"); const tempDiv = document.createElement("div");
tempDiv.innerHTML = stationPart; tempDiv.innerHTML = stationPart;
const stationNameOnly = tempDiv.textContent.trim(); const stationNameOnly = tempDiv.textContent.trim();
@ -48,19 +49,17 @@ const MetaHandler = {
const cleanTitle = title.toLowerCase(); const cleanTitle = title.toLowerCase();
const cleanStation = stationNameOnly.toLowerCase(); const cleanStation = stationNameOnly.toLowerCase();
// Filter für Dubletten und Systemmeldungen
if (cleanTitle === cleanStation || cleanTitle.includes(cleanStation) || title.includes('0848')) { if (cleanTitle === cleanStation || cleanTitle.includes(cleanStation) || title.includes('0848')) {
stationDisplay.innerHTML = stationPart; // Nur Sender anzeigen stationDisplay.innerHTML = stationPart;
return; return;
} }
// 3. Anzeige OHNE Bindestrich zusammenbauen (mit Abstandshaltern) // 3. Anzeige neu zusammenbauen (die Leerzeichen werden hier jedes Mal neu gesetzt, nicht addiert)
stationDisplay.innerHTML = `${stationPart} &nbsp; <i class="fa-solid fa-music"></i> ${title}`; stationDisplay.innerHTML = `${stationPart}&nbsp;&nbsp;&nbsp;<i class="fa-solid fa-music"></i> ${title}`;
}, },
start(streamUrl) { start(streamUrl) {
this.stop(); this.stop();
// Erster Aufruf sofort
this.fetchTitle(streamUrl); this.fetchTitle(streamUrl);
this.intervalId = setInterval(() => { this.intervalId = setInterval(() => {
@ -76,16 +75,15 @@ const MetaHandler = {
const stationDisplay = document.getElementById('current-station-name'); const stationDisplay = document.getElementById('current-station-name');
if (stationDisplay) { if (stationDisplay) {
// Entfernt alles ab dem Musik-Icon oder dem alten Bindestrich // Beim Stoppen alles nach dem Sender-Teil entfernen
if (stationDisplay.innerHTML.includes('<i class="fa-solid fa-music"')) { if (stationDisplay.innerHTML.includes('&nbsp;')) {
stationDisplay.innerHTML = stationDisplay.innerHTML.split(' <i class="fa-solid fa-music"')[0]; stationDisplay.innerHTML = stationDisplay.innerHTML.split('&nbsp;')[0].trim();
} else if (stationDisplay.innerHTML.includes(' ')) { } else if (stationDisplay.innerHTML.includes('<i class="fa-solid fa-music"')) {
stationDisplay.innerHTML = stationDisplay.innerHTML.split(' ')[0]; stationDisplay.innerHTML = stationDisplay.innerHTML.split(' <i class="fa-solid fa-music"')[0].trim();
} }
} }
} }
}; };
// Global verfügbar machen
window.MetaHandler = MetaHandler; window.MetaHandler = MetaHandler;
MetaHandler.init(); MetaHandler.init();