diff --git a/app.py b/app.py index e0d0daa..0dd4cbc 100644 --- a/app.py +++ b/app.py @@ -244,7 +244,13 @@ def play_track(): return {"error": "Missing device_id or track_uri"}, 400 sp = get_spotify_client() - sp.start_playback(device_id=device_id, uris=[track_uri], position_ms=position_ms) + try: + sp.start_playback(device_id=device_id, uris=[track_uri], position_ms=position_ms) + except spotipy.exceptions.SpotifyException as e: + if "Device not found" in str(e): + # Spezieller Fehlercode, damit das Frontend weiß, dass es neu laden soll + return {"error": "device_not_found", "message": "Spotify-Player nicht gefunden. Die Seite wird neu geladen..."}, 409 + return {"error": str(e)}, 500 return {"success": True} diff --git a/templates/quiz.html b/templates/quiz.html index 6ee08d9..5579f86 100644 --- a/templates/quiz.html +++ b/templates/quiz.html @@ -144,11 +144,14 @@ } // Starte Wiedergabe an gewünschter Stelle fetch(`/play_track?device_id=${device_id}&track_uri={{ track.uri }}&position_ms=${position_ms}`, { method: 'POST' }) - .then(response => { - if (!response.ok) { - throw new Error('Network response was not ok'); + .then(response => response.json()) + .then(data => { + if (data.error === "device_not_found") { + alert(data.message || "Spotify-Player nicht gefunden. Die Seite wird neu geladen..."); + window.location.reload(); + return; } - return response.json(); + // ...bisheriger Code... }) .catch(error => { console.error('Error starting playback:', error);