return nil
end
--- Return the mbid for first release
-function try_release(query)
+-- Return the mbid for the first release returned by the MusicBrainz search server for query
+function get_releaseid(query)
local s = vlc.stream( query )
if not s then return nil end
local page = s:read( 65653 )
-- FIXME: multiple results may be available and the first one is not
-- guaranteed to have asin, so if it doesnt, we wouldnt get any art
- _, _, releaseid = string.find( page, "<release id=\"([%x%-]-)\">" )
+ _, _, releaseid = string.find( page, "<release id=\"([%x%-]-)\"" )
if releaseid then
return releaseid
end
or meta["Listing Type"] == "tv"
then return nil end
+ local releaseid = nil
+
if meta["artist"] and meta["album"] then
query = "artist:\"" .. meta["artist"] .. "\" AND release:\"" .. meta["album"] .. "\""
relquery = "http://mb.videolan.org/ws/2/release/?query=" .. vlc.strings.encode_uri_component( query )
- return try_query( relquery )
- elseif meta["artist"] and meta["title"] then
+ releaseid = get_releaseid( relquery )
+ end
+ if not releaseid and meta["artist"] and meta["title"] then
query = "artist:\"" .. meta["artist"] .. "\" AND recording:\"" .. meta["title"] .. "\""
recquery = "http://mb.videolan.org/ws/2/recording/?query=" .. vlc.strings.encode_uri_component( query )
- releaseid = try_release( recquery )
- if releaseid then
- relquery = "http://mb.videolan.org/ws/2/release/" .. releaseid
- return try_query( relquery )
- else
- return nil
- end
+ releaseid = get_releaseid( recquery )
+ end
+ if releaseid then
+ relquery = "http://mb.videolan.org/ws/2/release/" .. releaseid
+ return try_query( relquery )
+ else
+ return nil
end
end