Module: VericastIFPI

Defined in:
lib/vericast-ifpi.rb

Defined Under Namespace

Classes: Song

Constant Summary collapse

BASE_URL =
'http://vericast.bmat.me/ifpi/search?lang=en'

Instance Method Summary collapse

Instance Method Details

#song_lookup(params) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/vericast-ifpi.rb', line 15

def song_lookup( params )
  results, search_url = [], BASE_URL

  params.each { |p, v| search_url += "&#{p}=#{URI.encode(v)}" }

  page = Nokogiri::HTML( open(search_url).read() )
  matches = page.xpath("//div[@class='info_search_head']/text()").inner_text().strip().match(/Found (.+) result/)
  if matches
    number_of_results = matches[1].to_i
    page.xpath("//table[contains(@class, 'table table-striped')]/tbody/tr").each do |tr|
      values = tr.xpath(".//td/text()").map { |e| e.inner_text().strip() }
      results << Song.new( values[0], values[1], values[2], values[3] )
    end
  end

  results
end