import sqlite3 import meilisearch client = meilisearch.Client("http://127.0.0.1:7700", "aSampleMasterKey") index = client.index("itunes-albums") con = sqlite3.connect("navidrome.db") cur = con.cursor() instertor = con.cursor() update_statement = """UPDATE album SET persistent_id = ?, itunes_date = ?, meili_nb_res = ?, meili_title = ?, meili_artist = ?, meili_doc = ?, meili_song_count = ?, validated = ? WHERE id = ?""" for row in cur.execute("SELECT * FROM album;"): msearch = index.search( row[1], {"filter": [f'Artist="{row[2]}"'], "showRankingScore": True} ) meili_result_len = len(msearch["hits"]) if meili_result_len > 0: meili_hit = msearch["hits"][0] if meili_hit["_rankingScore"] > 0.5: print(f"Update {row[1]}") val_score = 0 if meili_result_len == 1: val_score += 50 if meili_hit["Track Count"] == row[3]: val_score += 40 if meili_hit["Name"] == row[1]: val_score += 30 if row[2] in meili_hit["Artist"]: val_score += 10 data = ( meili_hit["Persistent ID"], meili_hit["Date Added"], meili_result_len, meili_hit["Name"], str(meili_hit["Artist"]), str(meili_hit), meili_hit["Track Count"], val_score, row[0], ) instertor.execute(update_statement, data) con.commit()