From b8e6fab6631c6bcf597c2c03e6d0185247954f46 Mon Sep 17 00:00:00 2001 From: Simon Date: Fri, 14 Nov 2025 23:41:52 +0100 Subject: [PATCH] modified: templates/quiz.html --- templates/quiz.html | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/templates/quiz.html b/templates/quiz.html index 811770f..bd37de4 100644 --- a/templates/quiz.html +++ b/templates/quiz.html @@ -218,6 +218,19 @@ // translations für JS verfügbar machen const i18n = {{ translations|tojson }}; + // Funktion zum Bereinigen von Titeln (entfernt Sonderzeichen) + function cleanTitle(title) { + // Entfernt alles in () oder [] + title = title.replace(/(\s*[\(\[][^)\]]*[\)\]])/g, ''); + // Entferne alle Arten von Apostrophen und Anführungszeichen + title = title.replace(/['\'\'`]/g, '').replace(/["„"""«»]/g, ''); + // Entferne weitere Sonderzeichen + title = title.replace(/[´′ʹ]/g, ''); + // Entferne doppelte Leerzeichen + title = title.replace(/\s+/g, ' '); + return title.trim(); + } + // Wird aufgerufen, wenn Spotify Web Playback SDK geladen ist window.onSpotifyWebPlaybackSDKReady = () => { const token = '{{ access_token }}'; @@ -301,7 +314,7 @@ document.getElementById('question-text').innerText = i18n.question_artist; document.getElementById('answerInput').placeholder = i18n.input_artist; } else if (currentGameMode === 'title') { - correctAnswer = "{{ track.name }}"; + correctAnswer = cleanTitle("{{ track.name }}"); // Bereinige den Titel document.getElementById('question-text').innerText = i18n.question_title; document.getElementById('answerInput').placeholder = i18n.input_title; } else if (currentGameMode === 'year') { @@ -354,10 +367,14 @@ data.results.forEach(result => { const item = document.createElement('div'); item.className = 'search-item'; - item.innerHTML = `${result.name} - ${result.artist}`; + // Zeige den bereinigten Namen im Autocomplete (wenn im title-Modus) + const displayName = currentGameMode === 'title' ? cleanTitle(result.name) : result.name; + item.innerHTML = `${displayName} - ${result.artist}`; item.onclick = function() { - document.getElementById('answerInput').value = - currentGameMode === 'artist' ? result.artist : result.name; + // Setze den bereinigten Wert ins Eingabefeld + const valueToSet = currentGameMode === 'artist' ? result.artist : + currentGameMode === 'title' ? cleanTitle(result.name) : result.name; + document.getElementById('answerInput').value = valueToSet; resultsContainer.style.display = 'none'; }; resultsContainer.appendChild(item); @@ -371,9 +388,14 @@ } function checkAnswer() { - const guess = document.getElementById('answerInput').value; + let guess = document.getElementById('answerInput').value; if (!guess) return; + // Bereinige die Eingabe im title-Modus + if (currentGameMode === 'title') { + guess = cleanTitle(guess); + } + fetch('/check_answer', { method: 'POST', headers: { 'Content-Type': 'application/json' },