modified: app.py
This commit is contained in:
14
app.py
14
app.py
@@ -137,8 +137,10 @@ def quiz(playlist_id):
|
||||
if not tracks:
|
||||
return "Keine Tracks verfügbar!"
|
||||
|
||||
# Verwende einen Ring-Buffer: nur die letzten 50 Songs merken (verhindert Session-Overflow)
|
||||
played_tracks = session.get(f'played_tracks_{playlist_id}', [])
|
||||
score = session.get(f'score_{playlist_id}', 0)
|
||||
total_played = session.get(f'total_played_{playlist_id}', 0) # Zähler für alle gespielten Songs
|
||||
|
||||
# Wenn alle Songs gespielt wurden, played_tracks zurücksetzen, Score bleibt!
|
||||
available_tracks = [t for t in tracks if t["id"] not in played_tracks]
|
||||
@@ -149,11 +151,18 @@ def quiz(playlist_id):
|
||||
|
||||
track = random.choice(available_tracks)
|
||||
played_tracks.append(track["id"])
|
||||
|
||||
# Ring-Buffer: Halte nur die letzten 75 gespielten Track-IDs (verhindert Session-Overflow bei großen Playlists)
|
||||
if len(played_tracks) > 75:
|
||||
played_tracks = played_tracks[-75:]
|
||||
|
||||
total_played += 1
|
||||
session[f'played_tracks_{playlist_id}'] = played_tracks
|
||||
session[f'score_{playlist_id}'] = score
|
||||
session[f'total_played_{playlist_id}'] = total_played
|
||||
|
||||
# Für die Anzeige der beantworteten Fragen
|
||||
answered = len(played_tracks) - 1 if len(played_tracks) > 0 else 0
|
||||
# Für die Anzeige der beantworteten Fragen (nutze total_played statt len(played_tracks))
|
||||
answered = total_played - 1 if total_played > 0 else 0
|
||||
|
||||
token_info = session.get('token_info', None)
|
||||
if not token_info:
|
||||
@@ -307,6 +316,7 @@ def index():
|
||||
def reset_quiz(playlist_id):
|
||||
session.pop(f'played_tracks_{playlist_id}', None)
|
||||
session.pop(f'score_{playlist_id}', None)
|
||||
session.pop(f'total_played_{playlist_id}', None) # Auch den Zähler zurücksetzen
|
||||
next_mode = request.args.get('next_mode')
|
||||
if next_mode:
|
||||
return redirect(url_for('quiz', playlist_id=playlist_id, mode=next_mode))
|
||||
|
||||
Reference in New Issue
Block a user