modified: templates/quiz.html
This commit is contained in:
@@ -218,6 +218,19 @@
|
|||||||
// translations für JS verfügbar machen
|
// translations für JS verfügbar machen
|
||||||
const i18n = {{ translations|tojson }};
|
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
|
// Wird aufgerufen, wenn Spotify Web Playback SDK geladen ist
|
||||||
window.onSpotifyWebPlaybackSDKReady = () => {
|
window.onSpotifyWebPlaybackSDKReady = () => {
|
||||||
const token = '{{ access_token }}';
|
const token = '{{ access_token }}';
|
||||||
@@ -301,7 +314,7 @@
|
|||||||
document.getElementById('question-text').innerText = i18n.question_artist;
|
document.getElementById('question-text').innerText = i18n.question_artist;
|
||||||
document.getElementById('answerInput').placeholder = i18n.input_artist;
|
document.getElementById('answerInput').placeholder = i18n.input_artist;
|
||||||
} else if (currentGameMode === 'title') {
|
} else if (currentGameMode === 'title') {
|
||||||
correctAnswer = "{{ track.name }}";
|
correctAnswer = cleanTitle("{{ track.name }}"); // Bereinige den Titel
|
||||||
document.getElementById('question-text').innerText = i18n.question_title;
|
document.getElementById('question-text').innerText = i18n.question_title;
|
||||||
document.getElementById('answerInput').placeholder = i18n.input_title;
|
document.getElementById('answerInput').placeholder = i18n.input_title;
|
||||||
} else if (currentGameMode === 'year') {
|
} else if (currentGameMode === 'year') {
|
||||||
@@ -354,10 +367,14 @@
|
|||||||
data.results.forEach(result => {
|
data.results.forEach(result => {
|
||||||
const item = document.createElement('div');
|
const item = document.createElement('div');
|
||||||
item.className = 'search-item';
|
item.className = 'search-item';
|
||||||
item.innerHTML = `<strong>${result.name}</strong> - ${result.artist}`;
|
// Zeige den bereinigten Namen im Autocomplete (wenn im title-Modus)
|
||||||
|
const displayName = currentGameMode === 'title' ? cleanTitle(result.name) : result.name;
|
||||||
|
item.innerHTML = `<strong>${displayName}</strong> - ${result.artist}`;
|
||||||
item.onclick = function() {
|
item.onclick = function() {
|
||||||
document.getElementById('answerInput').value =
|
// Setze den bereinigten Wert ins Eingabefeld
|
||||||
currentGameMode === 'artist' ? result.artist : result.name;
|
const valueToSet = currentGameMode === 'artist' ? result.artist :
|
||||||
|
currentGameMode === 'title' ? cleanTitle(result.name) : result.name;
|
||||||
|
document.getElementById('answerInput').value = valueToSet;
|
||||||
resultsContainer.style.display = 'none';
|
resultsContainer.style.display = 'none';
|
||||||
};
|
};
|
||||||
resultsContainer.appendChild(item);
|
resultsContainer.appendChild(item);
|
||||||
@@ -371,9 +388,14 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function checkAnswer() {
|
function checkAnswer() {
|
||||||
const guess = document.getElementById('answerInput').value;
|
let guess = document.getElementById('answerInput').value;
|
||||||
if (!guess) return;
|
if (!guess) return;
|
||||||
|
|
||||||
|
// Bereinige die Eingabe im title-Modus
|
||||||
|
if (currentGameMode === 'title') {
|
||||||
|
guess = cleanTitle(guess);
|
||||||
|
}
|
||||||
|
|
||||||
fetch('/check_answer', {
|
fetch('/check_answer', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: { 'Content-Type': 'application/json' },
|
headers: { 'Content-Type': 'application/json' },
|
||||||
|
|||||||
Reference in New Issue
Block a user