modified: app.py
This commit is contained in:
38
app.py
38
app.py
@@ -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')
|
||||
|
||||
Reference in New Issue
Block a user