modified: app.py
This commit is contained in:
20
app.py
20
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"
|
SCOPE = "user-library-read playlist-read-private streaming user-read-email user-read-private"
|
||||||
|
|
||||||
def get_spotify_client():
|
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_id=os.getenv("SPOTIPY_CLIENT_ID"),
|
||||||
client_secret=os.getenv("SPOTIPY_CLIENT_SECRET"),
|
client_secret=os.getenv("SPOTIPY_CLIENT_SECRET"),
|
||||||
redirect_uri=os.getenv("SPOTIPY_REDIRECT_URI"),
|
redirect_uri=os.getenv("SPOTIPY_REDIRECT_URI"),
|
||||||
scope=SCOPE,
|
scope=SCOPE,
|
||||||
cache_path=".cache"
|
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):
|
def similarity(a, b):
|
||||||
return SequenceMatcher(None, a.lower(), b.lower()).ratio()
|
return SequenceMatcher(None, a.lower(), b.lower()).ratio()
|
||||||
|
|
||||||
def clean_title(title):
|
def clean_title(title):
|
||||||
# Entfernt alles in () oder []
|
# 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):
|
def get_all_playlist_tracks(sp, playlist_id):
|
||||||
tracks = []
|
tracks = []
|
||||||
|
|||||||
Reference in New Issue
Block a user