modified: app.py

new file:   templates/buzzer_settings.html
	modified:   templates/playerselect.html
	modified:   templates/quiz_buzzer.html
	new file:   templates/quiz_buzzer_multiplayer.html
This commit is contained in:
Simon
2025-11-15 01:30:21 +01:00
parent 61d17b1cae
commit 081abe54c5
5 changed files with 891 additions and 9 deletions

44
app.py
View File

@@ -194,12 +194,19 @@ def quiz(playlist_id):
all_tracks.append(track_info)
# Wähle das passende Template
if buzzer_mode == '1':
if buzzer_mode == '1' and local_multiplayer == '1':
template_name = "quiz_buzzer_multiplayer.html"
# Lade Spieler-Scores
player_scores = session.get(f'player_scores_{playlist_id}', [0, 0, 0, 0])
elif buzzer_mode == '1':
template_name = "quiz_buzzer.html"
player_scores = None
elif local_multiplayer == '1':
template_name = "quiz_multiplayer.html"
player_scores = None
else:
template_name = "quiz.html"
player_scores = None
return render_template(
template_name,
@@ -215,7 +222,8 @@ def quiz(playlist_id):
translations=get_translations(),
max_points=1000,
grace_period=5,
decay_rate=50
decay_rate=50,
player_scores=player_scores
)
@app.route('/gamemodes/<playlist_id>')
@@ -228,9 +236,28 @@ def gamemodes(playlist_id):
def playerselect(playlist_id):
"""Choose singleplayer or local multiplayer before starting the quiz."""
game_mode = request.args.get('mode', 'artist')
buzzer = request.args.get('buzzer', '0')
user = session.get('user')
# Wenn Buzzer-Modus, redirect zu Einstellungen
if buzzer == '1':
return redirect(url_for('buzzer_settings', playlist_id=playlist_id, mode=game_mode))
return render_template('playerselect.html', playlist_id=playlist_id, game_mode=game_mode, translations=get_translations(), user=user)
@app.route('/buzzer_settings/<playlist_id>')
def buzzer_settings(playlist_id):
"""Configure buzzer mode settings before starting."""
game_mode = request.args.get('mode', 'title')
local_multiplayer = request.args.get('local_multiplayer', '0')
user = session.get('user')
return render_template('buzzer_settings.html',
playlist_id=playlist_id,
game_mode=game_mode,
local_multiplayer=local_multiplayer == '1',
translations=get_translations(),
user=user)
@app.route("/search_track", methods=["POST"])
def search_track():
data = request.json
@@ -324,6 +351,7 @@ def check_answer_buzzer():
playlist_id = data.get('playlist_id')
earned_points = data.get('earned_points', 0)
all_tracks = data.get('all_tracks', [])
player_id = data.get('player_id') # Für Multiplayer
# Originalwert für Vergleich speichern
original_guess = guess
@@ -340,8 +368,16 @@ def check_answer_buzzer():
# Score erhöhen mit Buzzer-Punkten, wenn richtig
if is_correct and playlist_id:
key = f'score_{playlist_id}'
session[key] = session.get(key, 0) + earned_points
if player_id:
# Multiplayer: Update Spieler-Score
key = f'player_scores_{playlist_id}'
player_scores = session.get(key, [0, 0, 0, 0])
player_scores[player_id - 1] += earned_points
session[key] = player_scores
else:
# Singleplayer: Update Gesamt-Score
key = f'score_{playlist_id}'
session[key] = session.get(key, 0) + earned_points
# Bei falscher Antwort: Finde das eingegebene Lied in all_tracks
guessed_track = None