From: kaliko Date: Mon, 7 May 2018 12:41:49 +0000 (+0200) Subject: Fixed fuzzy search for short artist names X-Git-Tag: 0.15.0~10 X-Git-Url: https://git.kaliko.me/?a=commitdiff_plain;h=93ad5efaffc6e4fd9476513ee16386e21ea4049d;p=mpd-sima.git Fixed fuzzy search for short artist names --- diff --git a/doc/Changelog b/doc/Changelog index 5110e96..d5106ed 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -4,6 +4,7 @@ MPD_sima v0.15.0 * Enhanced queuing behavior in random mode (Closes #16) * Add option to prevent single & repeat mode to disable queuing (Closes #19) * Honor MPC password/host format on command line option 'host' + * Fixed fuzzy search for short artist names -- kaliko jack UNRELEASED diff --git a/sima/client.py b/sima/client.py index c04f560..8bb5de3 100644 --- a/sima/client.py +++ b/sima/client.py @@ -198,8 +198,6 @@ class PlayerClient(Player): if exact_m: _ = [artist.add_alias(name) for name in exact_m] found = True - else: - artist = Artist(name=artist.name) # then complete with fuzzy search on artist with no musicbrainz_artistid if artist.mbid: # we already performed a lookup on artists with mbid set @@ -215,12 +213,13 @@ class PlayerClient(Player): # Does not perform fuzzy matching on short and single word strings # Only lowercased comparison if ' ' not in artist.name and len(artist.name) < 8: - for fuzz_art in match: + for close_art in match: # Regular lowered string comparison - if artist.name.lower() == fuzz_art.lower(): - artist.add_alias(fuzz_art) + if artist.name.lower() == close_art.lower(): + artist.add_alias(close_art) return artist - fzartist = SimaStr(artist.name) + else: + return for fuzz_art in match: # Regular lowered string comparison if artist.name.lower() == fuzz_art.lower(): @@ -230,7 +229,7 @@ class PlayerClient(Player): self.log.debug('"%s" matches "%s".', fuzz_art, artist) continue # SimaStr string __eq__ (not regular string comparison here) - if fzartist == fuzz_art: + if SimaStr(artist.name) == fuzz_art: found = True artist.add_alias(fuzz_art) self.log.info('"%s" quite probably matches "%s" (SimaStr)',