]> kaliko git repositories - mpd-sima.git/commitdiff
Fixed fuzzy search for short artist names
authorkaliko <kaliko@azylum.org>
Mon, 7 May 2018 12:41:49 +0000 (14:41 +0200)
committerkaliko <kaliko@azylum.org>
Mon, 7 May 2018 12:41:49 +0000 (14:41 +0200)
doc/Changelog
sima/client.py

index 5110e96fd6bec5ef74c1d814701e4ff4936de19f..d5106edc05965989b85d11232579d02bb126513d 100644 (file)
@@ -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'
  * 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 <kaliko@azylum.org> UNRELEASED
 
 
 -- kaliko jack <kaliko@azylum.org> UNRELEASED
 
index c04f560aece84c749a839e0aade0823f47493af4..8bb5de3192947d706e669651cdd38fb7a1f9d732 100644 (file)
@@ -198,8 +198,6 @@ class PlayerClient(Player):
             if exact_m:
                 _ = [artist.add_alias(name) for name in exact_m]
                 found = True
             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
         # 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:
         # 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
                 # 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
                     return artist
-        fzartist = SimaStr(artist.name)
+                else:
+                    return
         for fuzz_art in match:
             # Regular lowered string comparison
             if artist.name.lower() == fuzz_art.lower():
         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)
                     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)',
                 found = True
                 artist.add_alias(fuzz_art)
                 self.log.info('"%s" quite probably matches "%s" (SimaStr)',