modified: app.py

This commit is contained in:
2025-05-17 08:40:20 +02:00
parent 949ab32ba2
commit e9a80fe019

38
app.py
View File

@@ -65,16 +65,29 @@ def playlists():
@app.route("/quiz/<playlist_id>")
def quiz(playlist_id):
game_mode = request.args.get('mode', 'artist')
sp = get_spotify_client()
items = sp.playlist_items(playlist_id, additional_types=["track"])["items"]
tracks = [item["track"] for item in items]
tracks = [item["track"] for item in items if item.get("track")]
if not tracks:
return "Keine Tracks verfügbar!"
track = random.choice(tracks)
# Gespielte Tracks aus der Session holen
played_tracks = session.get(f'played_tracks_{playlist_id}', [])
# Filtere bereits gespielte Tracks heraus
available_tracks = [t for t in tracks if t["id"] not in played_tracks]
# Wenn alle gespielt wurden, zurücksetzen
if not available_tracks:
played_tracks = []
available_tracks = tracks
track = random.choice(available_tracks)
played_tracks.append(track["id"])
session[f'played_tracks_{playlist_id}'] = played_tracks
# Token aus der Sitzung holen für das Web Playback SDK
token_info = session.get('token_info', None)
if not token_info:
@@ -170,19 +183,22 @@ def play_track():
def toggle_playback():
data = request.json
device_id = data.get('device_id')
if not device_id:
return {"error": "Missing device_id"}, 400
sp = get_spotify_client()
# Aktuellen Playback-Status abrufen
# Playback-Status für das richtige Gerät prüfen
current_playback = sp.current_playback()
if current_playback and current_playback.get('is_playing'):
is_playing = False
if current_playback and current_playback.get('device', {}).get('id') == device_id:
is_playing = current_playback.get('is_playing', False)
if is_playing:
sp.pause_playback(device_id=device_id)
else:
sp.start_playback(device_id=device_id)
return {"success": True}
@app.route('/logout')