tmp
This commit is contained in:
parent
b68bda2e1b
commit
afc020fdbf
3 changed files with 57 additions and 9 deletions
|
|
@ -2,6 +2,7 @@ from DataBase import *
|
|||
from SpotifyWebAPI import find_song, update_access_token
|
||||
|
||||
from fuzzywuzzy import fuzz
|
||||
from tqdm import tqdm
|
||||
|
||||
|
||||
def spotify_pattern_generator():
|
||||
|
|
@ -11,7 +12,6 @@ def spotify_pattern_generator():
|
|||
spotify_library = get_data("tracks")
|
||||
|
||||
def find_local_songs_on_spotify(local_lib):
|
||||
from tqdm import tqdm
|
||||
total = len(local_library)
|
||||
found_tracks_map = {}
|
||||
with tqdm(total=total, desc='Searching local songs on spotify') as pbar:
|
||||
|
|
@ -60,7 +60,6 @@ def fuzzy_pattern_generator():
|
|||
return sorted_results
|
||||
|
||||
def resolve_tracks(s_patterns, t_patterns):
|
||||
from tqdm import tqdm
|
||||
|
||||
pattern_map = {}
|
||||
|
||||
|
|
@ -89,9 +88,43 @@ def fuzzy_pattern_generator():
|
|||
save_data(fuzzy_pattern, "link_pattern_fuzzy")
|
||||
|
||||
|
||||
def fuzzy_tag_pattern_generator():
|
||||
local_library = get_data("local_library")
|
||||
spotify_library = get_data("tracks")
|
||||
mappings = {}
|
||||
|
||||
def fuzzy_tags_ratio(first: SongTags, second: SongTags):
|
||||
title_ratio = fuzz.ratio(first.title, second.title) / 100
|
||||
artist_ratio = fuzz.ratio(first.artist, second.artist) / 100
|
||||
album_ratio = fuzz.ratio(first.album, second.album) / 100
|
||||
return sum([title_ratio, artist_ratio, album_ratio]) / 3
|
||||
|
||||
with tqdm(total=len(local_library), desc='Searching local songs on spotify') as pbar:
|
||||
for local_track_id, local_track in local_library.items():
|
||||
mapping = mappings.get(local_track_id, {"score": 1.0, "items": []})
|
||||
ratios = []
|
||||
for remote_track in spotify_library:
|
||||
track = remote_track['track']
|
||||
|
||||
tag1 = SongTags(local_track['name'], local_track['artist'], local_track['album'])
|
||||
tag2 = SongTags(track['name'], get_artists_str(track['artists']), track['album']['name'])
|
||||
|
||||
ratios.append((fuzzy_tags_ratio(tag1, tag2), track['id']))
|
||||
|
||||
ratios.sort(reverse=True, key=lambda x: x[0])
|
||||
if ratios[0][0] > 0.8:
|
||||
mapping['items'] = [ratios[0][1]]
|
||||
|
||||
mappings[local_track_id] = mapping
|
||||
pbar.update(1)
|
||||
|
||||
save_data(mappings, "link_pattern_tags")
|
||||
|
||||
|
||||
def run_pattern_generators():
|
||||
#fuzzy_pattern_generator()
|
||||
spotify_pattern_generator()
|
||||
#spotify_pattern_generator()
|
||||
fuzzy_tag_pattern_generator()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue