Merge pull request #5 from endore-me/weight-for-name
give hight weight for name matching
This commit is contained in:
commit
e238727b1b
|
@ -60,7 +60,13 @@ module MusicBrainz
|
||||||
:mbid => self.safe_get_attr(a, nil, 'id')
|
:mbid => self.safe_get_attr(a, nil, 'id')
|
||||||
}
|
}
|
||||||
aliases = a.css('alias-list > alias').map{ |item| item.text }
|
aliases = a.css('alias-list > alias').map{ |item| item.text }
|
||||||
if aliases.include? name
|
if artist[:name] == name
|
||||||
|
artist[:weight] += 100
|
||||||
|
elsif artist[:name].downcase == name.downcase
|
||||||
|
artist[:weight] += 50
|
||||||
|
elsif artist[:name].downcase.gsub(/\s/, '') == name.downcase.gsub(/\s/, '')
|
||||||
|
artist[:weight] += 25
|
||||||
|
elsif aliases.include? name
|
||||||
artist[:weight] += 20
|
artist[:weight] += 20
|
||||||
elsif aliases.map{ |item| item.downcase }.include? name.downcase
|
elsif aliases.map{ |item| item.downcase }.include? name.downcase
|
||||||
artist[:weight] += 10
|
artist[:weight] += 10
|
||||||
|
|
|
@ -13,6 +13,12 @@ class TestMusicbrainzArtist < Test::Unit::TestCase
|
||||||
assert_operator(0, :<, matches.length)
|
assert_operator(0, :<, matches.length)
|
||||||
assert_equal("Kasabian", matches.first[:name])
|
assert_equal("Kasabian", matches.first[:name])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
should "find name first than alias" do
|
||||||
|
matches = MusicBrainz::Artist.search('Chris Martin')
|
||||||
|
assert_operator(0, :<, matches.length)
|
||||||
|
assert_equal("Chris Martin", matches.first[:name])
|
||||||
|
end
|
||||||
|
|
||||||
should "get correct result by name" do
|
should "get correct result by name" do
|
||||||
@artist = MusicBrainz::Artist.find_by_name('Kasabian')
|
@artist = MusicBrainz::Artist.find_by_name('Kasabian')
|
||||||
|
|
Loading…
Reference in New Issue