Sha256: ec491000367795589d522f7a064d6666e241d9fb4be57025bd011ad8dee772a7
Contents?: true
Size: 1.16 KB
Versions: 2
Compression:
Stored size: 1.16 KB
Contents
require 'open-uri' require 'nokogiri' module LyricFind class API def initialize search_api_key, display_api_key @search_key = search_api_key @display_key = display_api_key end def get_lyrics_by_song_name artist, song_name query_url = URI.escape "http://api.lyricfind.com/search.do?apikey=#{@search_key}&reqtype=default&searchtype=track&artist=#{artist}&track=#{song_name}" response = open(query_url).read doc = Nokogiri::HTML(response) doc.encoding = 'utf-8' return nil if !(check_success doc, 100) tracks = doc.xpath('//tracks')[0]['totalresults'].to_i return nil if tracks == 0 track = doc.xpath('//tracks/track')[0]['amg'] query_url = URI.escape "http://api.lyricfind.com/lyric.do?apikey=#{@display_key}&reqtype=default&trackid=amg:#{track}" response = open(query_url).read doc = Nokogiri::HTML(response) doc.encoding = 'utf-8' return nil if !(check_success doc, 101) lyrics = doc.xpath('//lyrics') lyrics[0].content end def check_success doc, code response = doc.xpath('//response') response[0]['code'].to_i == code end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
LyricFind-0.1.2 | lib/lyricfind/get_lyrics_by_song_name.rb |
LyricFind-0.1.1 | lib/lyricfind/get_lyrics_by_song_name.rb |