16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/searchlink/searches/lastfm.rb', line 16
def search(search_type, search_terms, link_text)
type = search_type =~ /art$/ ? 'artist' : 'track'
url = "http://ws.audioscrobbler.com/2.0/?method=#{type}.search&#{type}=#{search_terms.url_encode}&api_key=2f3407ec29601f97ca8a18ff580477de&format=json"
json = Curl::Json.new(url).json
return false unless json['results']
begin
case type
when 'track'
result = json['results']['trackmatches']['track'][0]
url = result['url']
title = "#{result['name']} by #{result['artist']}"
when 'artist'
result = json['results']['artistmatches']['artist'][0]
url = result['url']
title = result['name']
end
[url, title, link_text]
rescue StandardError
false
end
end
|