Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
"""Search song in the cache based on simple each word matching."""
song_name = remove_stopwords(remove_multiple_spaces(song_name).lower())
tokens1 = song_name.split()
cached_songs = song_list
res = []
for song in cached_songs:
song_back = song
song = song.track_name
name = song.lower()
name = remove_punct(name)
name = remove_multiple_spaces(name)
tokens2 = name.split()
match = check_keywords(tokens1, tokens2)
if match:
dist = compute_jaccard(tokens1, tokens2)
# if dist >= 1:
res.append((song_back, dist))
res = sorted(res, key=lambda x: x[1], reverse=True)
# Return w/o the dist values
for i in range(0, len(res)):
res[i] = res[i][0]
return res
def _search_tokens(self, song_name):
"""Search song in the cache based on simple each word matching."""
song_name = remove_stopwords(remove_multiple_spaces(song_name).lower())
tokens1 = song_name.split()
cached_songs = self.list_mp3()
res = []
for song in cached_songs:
name = os.path.splitext(song)[0].lower()
title = name
name = remove_punct(name)
name = remove_multiple_spaces(name)
tokens2 = name.split()
match = check_keywords(tokens1, tokens2)
if match:
dist = compute_jaccard(tokens1, tokens2)
res.append((song_name, song, title, dist))
res = sorted(res, key=lambda x: x[-1], reverse=True)
if res and res[0][-1] > 0:
return res[0][2], self.get_full_location(res[0][1])
else:
return None