From: Ilkka Ollakka Date: Wed, 30 Jun 2010 17:49:15 +0000 (+0300) Subject: lua: fix fuzzy musicbrainz search and use " " around title/artists X-Git-Tag: 1.2.0-pre1~6003 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=5661954c35570f67148f096c209ac679f9742a1b;p=vlc lua: fix fuzzy musicbrainz search and use " " around title/artists --- diff --git a/share/lua/meta/art/01_musicbrainz.lua b/share/lua/meta/art/01_musicbrainz.lua index 934e9ad310..e043151d1b 100644 --- a/share/lua/meta/art/01_musicbrainz.lua +++ b/share/lua/meta/art/01_musicbrainz.lua @@ -38,20 +38,15 @@ function try_query(query) local page = s:read( 65653 ) -- FIXME: multiple results may be available - _,_,asin = string.find( page, "(.-)" ) + asin = string.find( page, "(%w+)" ) if asin then + vlc.msg.dbg( asin ) return "http://images.amazon.com/images/P/"..asin..".01._SCLZZZZZZZ_.jpg" else return nil 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() @@ -59,8 +54,8 @@ function fetch_art() return nil 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="..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"])) + 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=\""..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(meta["album"].."\"~ AND ".."artist:"..meta["artist"].."~") return try_query(query1) or try_query(query2) or try_query(query3) end