]> git.sesse.net Git - vlc/commitdiff
Add a third query with fuzzy search enabled for every word. (We could also add other...
authorAntoine Cellerier <dionoea@videolan.org>
Sat, 13 Feb 2010 21:45:38 +0000 (22:45 +0100)
committerAntoine Cellerier <dionoea@videolan.org>
Sat, 13 Feb 2010 21:47:41 +0000 (22:47 +0100)
share/lua/meta/art/01_musicbrainz.lua

index be355abfbdd10e81142f31a67c755ad9bfdb8805..d35d2b43c01a9403ebd762d814014b0234e1db6a 100644 (file)
@@ -45,6 +45,12 @@ function try_query(query)
     end
 end
 
+function fuzzy(query)
+    -- http://musicbrainz.org/doc/TextSearchSyntax#Fuzzy_searches
+    -- we could even tweak the fuzziness
+    return string.gsub(query, "([^%s]+)", "%1~")
+end
+
 -- Return the artwork
 function fetch_art()
     local meta = vlc.item:metas()
@@ -53,6 +59,7 @@ function fetch_art()
     end
 
     local query1 = "http://musicbrainz.org/ws/1/release/?type=xml&artist="..vlc.strings.encode_uri_component(meta["artist"]).."&title="..vlc.strings.encode_uri_component(meta["album"])
-    local query2 = "http://musicbrainz.org/ws/1/release/?type=xml&query=artist:"..vlc.strings.encode_uri_component(meta["artist"]).." AND "..vlc.strings.encode_uri_component(meta["album"])
-    return try_query(query1) or try_query(query2)
+    local query2 = "http://musicbrainz.org/ws/1/release/?type=xml&query="..vlc.strings.encode_uri_component(meta["album"].." AND ".."artist:"..meta["artist"])
+    local query3 = "http://musicbrainz.org/ws/1/release/?type=xml&query="..vlc.strings.encode_uri_component(fuzzy(meta["album"]).." AND ".."artist:"..fuzzy(meta["artist"]))
+    return try_query(query1) or try_query(query2) or try_query(query3)
 end