22 lines
733 B
Ruby
22 lines
733 B
Ruby
# encoding: UTF-8
|
||
module MusicBrainz
|
||
module Bindings
|
||
module TrackSearch
|
||
def parse(xml)
|
||
xml.xpath('./recording-list/recording').map do |xml|
|
||
{
|
||
id: (xml.attribute('id').value rescue nil),
|
||
mbid: (xml.attribute('id').value rescue nil), # Old shit
|
||
title: (xml.xpath('./title').text.gsub(/[`’]/, "'") rescue nil),
|
||
artist: (xml.xpath('./artist-credit/name-credit/artist/name').text rescue nil),
|
||
releases: (xml.xpath('./release-list/release/title').map{ |xml| xml.text } rescue []),
|
||
score: (xml.attribute('score').value.to_i rescue nil)
|
||
} rescue nil
|
||
end.delete_if{ |item| item.nil? }
|
||
end
|
||
|
||
extend self
|
||
end
|
||
end
|
||
end
|