From 97d84444415fff03249a21b4a1b4e7d7991bf0b4 Mon Sep 17 00:00:00 2001 From: Simon Date: Fri, 14 Nov 2025 23:56:46 +0100 Subject: [PATCH] modified: app.py modified: templates/quiz.html --- app.py | 5 ++++- templates/quiz.html | 16 ++++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/app.py b/app.py index 96849ef..f95038a 100644 --- a/app.py +++ b/app.py @@ -251,6 +251,9 @@ def check_answer(): game_mode = data.get('game_mode', 'artist') playlist_id = data.get('playlist_id') + # Speichere Original für Anzeige + original_answer = correct_answer + # Bei Titel und Künstler: Sonderzeichen entfernen für besseren Vergleich if game_mode == 'title' or game_mode == 'artist': guess = clean_title(guess) @@ -268,7 +271,7 @@ def check_answer(): return { "correct": is_correct, - "correct_answer": correct_answer + "correct_answer": original_answer } @app.route("/play_track", methods=["POST"]) diff --git a/templates/quiz.html b/templates/quiz.html index 811770f..f77fa8f 100644 --- a/templates/quiz.html +++ b/templates/quiz.html @@ -312,6 +312,17 @@ } } + // Hilfsfunktion: Entfernt Sonderzeichen wie in Python clean_title + function cleanTitle(title) { + // Entferne Klammerzusätze + title = title.replace(/(\s*[\(\[][^)\]]*[\)\]])/g, ''); + // Entferne Apostrophe und Anführungszeichen + title = title.replace(/['''`´ʼ""„""']/g, ''); + // Entferne weitere Sonderzeichen (außer Buchstaben, Zahlen, Leerzeichen, - und &) + title = title.replace(/[^\w\s\-&]/g, ''); + return title.trim(); + } + function togglePlay() { const deviceId = document.getElementById('device_id').value; @@ -356,8 +367,9 @@ item.className = 'search-item'; item.innerHTML = `${result.name} - ${result.artist}`; item.onclick = function() { - document.getElementById('answerInput').value = - currentGameMode === 'artist' ? result.artist : result.name; + // Setze den bereinigten Wert (ohne Sonderzeichen) ins Input + const valueToSet = currentGameMode === 'artist' ? result.artist : result.name; + document.getElementById('answerInput').value = cleanTitle(valueToSet); resultsContainer.style.display = 'none'; }; resultsContainer.appendChild(item);