lib/ayadn/nowplaying.rb in ayadn-2.0.3 vs lib/ayadn/nowplaying.rb in ayadn-2.0.4

- old
+ new

@@ -177,52 +177,33 @@ get_itunes_store(itunes_url, artist, track) end def get_itunes_store url, artist, track results = JSON.load(CNX.download(URI.escape(url)))['results'] + # puts results.inspect - unless results.empty? || results.nil? - # results.each {|obj| puts obj['trackName']} - # puts "-" - # puts track - one = results.select do |obj| - next if obj['trackName'].nil? - obj['trackName'].downcase == track.downcase - end - # puts one.inspect - if one.empty? - by_artist = results.select do |obj| - next if obj['artistName'].nil? - obj['artistName'].downcase == artist.downcase - end - # puts by_artist - by_exact_track = by_artist.select do |obj| - next if obj['trackName'].nil? - obj['trackName'].downcase == track.downcase - end - # puts by_exact_track - if by_exact_track.empty? - splitted = track.split(" ").first.downcase - results = by_artist.select do |obj| - next if obj['trackName'].nil? - obj['trackName'].split(" ").first.downcase == splitted - end - else - results = by_exact_track - end + unless results.nil? - else - results = one - end - if results.empty? return { 'code' => 404, 'request' => url } end - candidate = results[0] + candidates = [] + candidates_track = results.map { |e| e if e['trackName'].downcase == track.downcase }.compact + candidates_track.each do |e| + next if e['artistName'].nil? + candidates << e if e['artistName'].downcase == artist.downcase + end + # require "pp";pp candidates; exit + + candidate = if candidates.empty? + results[0] + else + candidates[0] + end return { 'code' => 200, 'artist' => candidate['artistName'], 'track' => candidate['trackName'],