From 90885257cec44329c712bf515142f7a2a808049e Mon Sep 17 00:00:00 2001 From: SimolZimol <70102430+SimolZimol@users.noreply.github.com> Date: Mon, 19 May 2025 17:07:34 +0200 Subject: [PATCH] modified: app.py --- app.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/app.py b/app.py index 27d26e5..987a584 100644 --- a/app.py +++ b/app.py @@ -17,20 +17,34 @@ app.secret_key = os.getenv("SECRET_KEY") SCOPE = "user-library-read playlist-read-private streaming user-read-email user-read-private" def get_spotify_client(): - return spotipy.Spotify(auth_manager=SpotifyOAuth( + token_info = session.get("token_info", None) + if not token_info: + # Kein Token, redirect handled elsewhere + return None + # Prüfen, ob Token abgelaufen ist + sp_oauth = SpotifyOAuth( client_id=os.getenv("SPOTIPY_CLIENT_ID"), client_secret=os.getenv("SPOTIPY_CLIENT_SECRET"), redirect_uri=os.getenv("SPOTIPY_REDIRECT_URI"), scope=SCOPE, cache_path=".cache" - )) + ) + if sp_oauth.is_token_expired(token_info): + token_info = sp_oauth.refresh_access_token(token_info['refresh_token']) + session["token_info"] = token_info + return spotipy.Spotify(auth=token_info['access_token']) def similarity(a, b): return SequenceMatcher(None, a.lower(), b.lower()).ratio() def clean_title(title): # Entfernt alles in () oder [] - return re.sub(r"(\s*[\(\[][^)\]]*[\)\]])", "", title).strip() + title = re.sub(r"(\s*[\(\[][^)\]]*[\)\]])", "", title) + # Vereinheitliche Apostrophen und Anführungszeichen + title = title.replace("’", "'").replace("‘", "'").replace("`", "'") + title = title.replace('"', '').replace("„", '').replace("“", '').replace("”", '') + title = title.replace("'", "") # Optional: alle Apostrophen entfernen + return title.strip() def get_all_playlist_tracks(sp, playlist_id): tracks = []