modified: app.py
This commit is contained in:
29
app.py
29
app.py
@@ -55,11 +55,13 @@ def similarity(a, b):
|
|||||||
def clean_title(title):
|
def clean_title(title):
|
||||||
# Entfernt alles in () oder []
|
# Entfernt alles in () oder []
|
||||||
title = re.sub(r"(\s*[\(\[][^)\]]*[\)\]])", "", title)
|
title = re.sub(r"(\s*[\(\[][^)\]]*[\)\]])", "", title)
|
||||||
# Entferne alle Arten von Apostrophen, Backticks und Anführungszeichen
|
# Entferne alle Arten von Apostrophen, Anführungszeichen und Backticks
|
||||||
title = title.replace("'", "").replace("'", "").replace("'", "").replace("`", "")
|
title = title.replace("'", "").replace("'", "").replace("'", "")
|
||||||
title = title.replace('"', '').replace("„", '').replace(""", '').replace(""", '').replace("´", "")
|
title = title.replace("`", "").replace("´", "").replace("ʼ", "")
|
||||||
# Entferne weitere problematische Sonderzeichen
|
title = title.replace('"', "").replace("„", "").replace(""", "").replace(""", "")
|
||||||
title = title.replace("–", "-").replace("—", "-").replace("…", "...")
|
title = title.replace("'", "")
|
||||||
|
# Entferne weitere Sonderzeichen die Probleme machen könnten
|
||||||
|
title = re.sub(r"[^\w\s\-&]", "", title, flags=re.UNICODE)
|
||||||
return title.strip()
|
return title.strip()
|
||||||
|
|
||||||
def get_all_playlist_tracks(sp, playlist_id):
|
def get_all_playlist_tracks(sp, playlist_id):
|
||||||
@@ -222,8 +224,9 @@ def search_track():
|
|||||||
for track in all_tracks:
|
for track in all_tracks:
|
||||||
cleaned_name = clean_title(track["name"])
|
cleaned_name = clean_title(track["name"])
|
||||||
cleaned_query = clean_title(query)
|
cleaned_query = clean_title(query)
|
||||||
|
cleaned_artist = clean_title(track["artist"])
|
||||||
name_similarity = similarity(cleaned_query, cleaned_name)
|
name_similarity = similarity(cleaned_query, cleaned_name)
|
||||||
artist_similarity = similarity(query, track["artist"])
|
artist_similarity = similarity(cleaned_query, cleaned_artist)
|
||||||
|
|
||||||
# Wenn Name oder Künstler zu 80% übereinstimmt
|
# Wenn Name oder Künstler zu 80% übereinstimmt
|
||||||
if name_similarity >= 0.8 or artist_similarity >= 0.8:
|
if name_similarity >= 0.8 or artist_similarity >= 0.8:
|
||||||
@@ -243,19 +246,15 @@ def search_track():
|
|||||||
@app.route("/check_answer", methods=["POST"])
|
@app.route("/check_answer", methods=["POST"])
|
||||||
def check_answer():
|
def check_answer():
|
||||||
data = request.json
|
data = request.json
|
||||||
guess = data.get('guess', '')
|
guess = data.get('guess', '').lower()
|
||||||
correct_answer = data.get('correct_answer', '')
|
correct_answer = data.get('correct_answer', '').lower()
|
||||||
game_mode = data.get('game_mode', 'artist')
|
game_mode = data.get('game_mode', 'artist')
|
||||||
playlist_id = data.get('playlist_id')
|
playlist_id = data.get('playlist_id')
|
||||||
|
|
||||||
# Bereinige BEIDE Strings vor dem Vergleich (für title UND artist)
|
# Bei Titel und Künstler: Sonderzeichen entfernen für besseren Vergleich
|
||||||
if game_mode == 'title' or game_mode == 'artist':
|
if game_mode == 'title' or game_mode == 'artist':
|
||||||
guess = clean_title(guess).lower()
|
guess = clean_title(guess)
|
||||||
correct_answer = clean_title(correct_answer).lower()
|
correct_answer = clean_title(correct_answer)
|
||||||
else:
|
|
||||||
# Jahr-Modus: nur lowercase
|
|
||||||
guess = guess.lower()
|
|
||||||
correct_answer = correct_answer.lower()
|
|
||||||
|
|
||||||
if game_mode == 'year':
|
if game_mode == 'year':
|
||||||
is_correct = guess == correct_answer
|
is_correct = guess == correct_answer
|
||||||
|
|||||||
Reference in New Issue
Block a user