diff --git a/app.py b/app.py index 97623a2..57f13c3 100644 --- a/app.py +++ b/app.py @@ -468,6 +468,21 @@ def reset_quiz(playlist_id): return redirect(url_for('quiz', playlist_id=playlist_id, mode=next_mode)) return redirect(url_for('playlists')) +@app.route("/update_player_score/", methods=["POST"]) +def update_player_score(playlist_id): + """Aktualisiert den Score eines einzelnen Spielers in der Session.""" + data = request.json + player_id = data.get('player_id') # 1-basiert + delta = data.get('delta', 0) + if not player_id: + return {"error": "Missing player_id"}, 400 + key = f'player_scores_{playlist_id}' + player_scores = session.get(key, [0, 0, 0, 0]) + player_scores[player_id - 1] += delta + session[key] = player_scores + session.modified = True + return {"success": True, "new_score": player_scores[player_id - 1]} + @app.route("/reset_scores/") def reset_scores(playlist_id): """Reset nur die Scores, aber behalte gespielte Tracks.""" diff --git a/templates/quiz_buzzer_multiplayer.html b/templates/quiz_buzzer_multiplayer.html index 7dbd639..fd2b222 100644 --- a/templates/quiz_buzzer_multiplayer.html +++ b/templates/quiz_buzzer_multiplayer.html @@ -688,10 +688,19 @@ }); } + function applyScoreToServer(playerId, delta) { + return fetch('/update_player_score/{{ playlist_id }}', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ player_id: playerId, delta: delta }) + }); + } + function continueGame() { - // Wende Minuspunkte an + // Wende Minuspunkte an (lokal und auf Server) players[currentBuzzer - 1].score += pendingPoints; updateScoreboard(); + applyScoreToServer(currentBuzzer, pendingPoints); // Reset für nächsten Buzzer document.getElementById('answerSection').classList.remove('active'); @@ -718,9 +727,10 @@ } function showSolution() { - // Wende Minuspunkte an + // Wende Minuspunkte an (lokal und auf Server) players[currentBuzzer - 1].score += pendingPoints; updateScoreboard(); + applyScoreToServer(currentBuzzer, pendingPoints); const resultContainer = document.getElementById('resultContainer'); resultContainer.innerHTML = `