modified: app.py

This commit is contained in:
Simon
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>") @app.route("/quiz/<playlist_id>")
def quiz(playlist_id): def quiz(playlist_id):
game_mode = request.args.get('mode', 'artist') game_mode = request.args.get('mode', 'artist')
sp = get_spotify_client() sp = get_spotify_client()
items = sp.playlist_items(playlist_id, additional_types=["track"])["items"] items = sp.playlist_items(playlist_id, additional_types=["track"])["items"]
tracks = [item["track"] for item in items if item.get("track")]
tracks = [item["track"] for item in items]
if not tracks: if not tracks:
return "Keine Tracks verfügbar!" 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 aus der Sitzung holen für das Web Playback SDK
token_info = session.get('token_info', None) token_info = session.get('token_info', None)
if not token_info: if not token_info:
@@ -170,19 +183,22 @@ def play_track():
def toggle_playback(): def toggle_playback():
data = request.json data = request.json
device_id = data.get('device_id') device_id = data.get('device_id')
if not device_id: if not device_id:
return {"error": "Missing device_id"}, 400 return {"error": "Missing device_id"}, 400
sp = get_spotify_client() sp = get_spotify_client()
# Aktuellen Playback-Status abrufen # Playback-Status für das richtige Gerät prüfen
current_playback = sp.current_playback() current_playback = sp.current_playback()
is_playing = False
if current_playback and current_playback.get('is_playing'): 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) sp.pause_playback(device_id=device_id)
else: else:
sp.start_playback(device_id=device_id) sp.start_playback(device_id=device_id)
return {"success": True} return {"success": True}
@app.route('/logout') @app.route('/logout')