modified: app.py
modified: templates/quiz.html
This commit is contained in:
50
app.py
50
app.py
@@ -11,7 +11,8 @@ import random
|
||||
app = Flask(__name__)
|
||||
app.secret_key = os.getenv("SECRET_KEY")
|
||||
|
||||
SCOPE = "user-library-read playlist-read-private"
|
||||
# Erweiterte Berechtigungen für Web Playback SDK
|
||||
SCOPE = "user-library-read playlist-read-private streaming user-read-email user-read-private"
|
||||
|
||||
def get_spotify_client():
|
||||
return spotipy.Spotify(auth_manager=SpotifyOAuth(
|
||||
@@ -62,12 +63,53 @@ def quiz(playlist_id):
|
||||
sp = get_spotify_client()
|
||||
items = sp.playlist_items(playlist_id, additional_types=["track"])["items"]
|
||||
|
||||
tracks = [item["track"] for item in items if item["track"]["preview_url"]]
|
||||
tracks = [item["track"] for item in items]
|
||||
if not tracks:
|
||||
return "Keine Tracks mit Vorschau verfügbar!"
|
||||
return "Keine Tracks verfügbar!"
|
||||
|
||||
track = random.choice(tracks)
|
||||
return render_template("quiz.html", track=track)
|
||||
|
||||
# Token aus der Sitzung holen für das Web Playback SDK
|
||||
token_info = session.get('token_info', None)
|
||||
if not token_info:
|
||||
return redirect('/login')
|
||||
|
||||
# Zugriff auf access_token
|
||||
access_token = token_info['access_token']
|
||||
|
||||
return render_template("quiz.html", track=track, access_token=access_token, playlist_id=playlist_id)
|
||||
|
||||
@app.route("/play_track", methods=["POST"])
|
||||
def play_track():
|
||||
device_id = request.args.get('device_id')
|
||||
track_uri = request.args.get('track_uri')
|
||||
|
||||
if not device_id or not track_uri:
|
||||
return {"error": "Missing device_id or track_uri"}, 400
|
||||
|
||||
sp = get_spotify_client()
|
||||
sp.start_playback(device_id=device_id, uris=[track_uri])
|
||||
|
||||
return {"success": True}
|
||||
|
||||
@app.route("/toggle_playback", methods=["POST"])
|
||||
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
|
||||
current_playback = sp.current_playback()
|
||||
|
||||
if current_playback and current_playback.get('is_playing'):
|
||||
sp.pause_playback(device_id=device_id)
|
||||
else:
|
||||
sp.start_playback(device_id=device_id)
|
||||
|
||||
return {"success": True}
|
||||
|
||||
@app.route('/logout')
|
||||
def logout():
|
||||
|
||||
Reference in New Issue
Block a user