From 5c02266370bbbb64c15d4faad29438729a83496c Mon Sep 17 00:00:00 2001 From: Simon Date: Fri, 14 Nov 2025 23:53:54 +0100 Subject: [PATCH] modified: app.py --- app.py | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/app.py b/app.py index 860c690..96849ef 100644 --- a/app.py +++ b/app.py @@ -55,11 +55,13 @@ def similarity(a, b): def clean_title(title): # Entfernt alles in () oder [] title = re.sub(r"(\s*[\(\[][^)\]]*[\)\]])", "", title) - # Entferne alle Arten von Apostrophen, Backticks und Anführungszeichen - title = title.replace("'", "").replace("'", "").replace("'", "").replace("`", "") - title = title.replace('"', '').replace("„", '').replace(""", '').replace(""", '').replace("´", "") - # Entferne weitere problematische Sonderzeichen - title = title.replace("–", "-").replace("—", "-").replace("…", "...") + # Entferne alle Arten von Apostrophen, Anführungszeichen und Backticks + title = title.replace("'", "").replace("'", "").replace("'", "") + title = title.replace("`", "").replace("´", "").replace("ʼ", "") + title = title.replace('"', "").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() def get_all_playlist_tracks(sp, playlist_id): @@ -222,8 +224,9 @@ def search_track(): for track in all_tracks: cleaned_name = clean_title(track["name"]) cleaned_query = clean_title(query) + cleaned_artist = clean_title(track["artist"]) 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 if name_similarity >= 0.8 or artist_similarity >= 0.8: @@ -243,19 +246,15 @@ def search_track(): @app.route("/check_answer", methods=["POST"]) def check_answer(): data = request.json - guess = data.get('guess', '') - correct_answer = data.get('correct_answer', '') + guess = data.get('guess', '').lower() + correct_answer = data.get('correct_answer', '').lower() game_mode = data.get('game_mode', 'artist') 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': - guess = clean_title(guess).lower() - correct_answer = clean_title(correct_answer).lower() - else: - # Jahr-Modus: nur lowercase - guess = guess.lower() - correct_answer = correct_answer.lower() + guess = clean_title(guess) + correct_answer = clean_title(correct_answer) if game_mode == 'year': is_correct = guess == correct_answer