LyricFind 0.1.5 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 394a1b69e759c034601bc5e11504fb8b323c84ca
4
- data.tar.gz: 87f8ea293c44d6ec1b43e0df8d9e94ad65a76966
3
+ metadata.gz: 20b1ab696d7544364ffd20a380e5cd7c14b63ee5
4
+ data.tar.gz: 6a8ddb99be8d235adc8f93f4a8fcd5bf3b286156
5
5
  SHA512:
6
- metadata.gz: affa41b89722d4c1bd63924601624b36c4e554737d3a5c39f2b6177d942cb392f89394f77dc61fa661ad51c5938e7d23766970fbb00fe58089e4b9903ec02985
7
- data.tar.gz: 1e6c4b9d5536f0839b4b79bbfd555c1a77ce0debdb53ff9fd8c19e5568d41ceca8b8c48edf656a29f410f10721f3f97fc678365fc636c20a5b18909855f73aea
6
+ metadata.gz: 755e33933aa02295c4f50fa0d1f929d21017b24c31131f514abea759fe9f922377ec5d8f4a6cf533700066d2d995f3f4b7550d6257870161fd8821df2fc2573c
7
+ data.tar.gz: 0ceb9c046d67f779847656dfbfb602d9d70d26ba575e20903276f106b49dbf0d1f8c650a3da4da95367802cd98787e425e781f4c81a8df7d360500064b899d08
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- LyricFind (0.1.5)
4
+ LyricFind (0.1.6)
5
5
  nokogiri (~> 1.6)
6
6
 
7
7
  GEM
@@ -4,3 +4,4 @@ require "lyricfind/instrumental"
4
4
  require "lyricfind/duration"
5
5
  require "lyricfind/album"
6
6
  require "lyricfind/get_snippet_by_song_name"
7
+ require "lyricfind/get_song_info"
@@ -7,7 +7,7 @@ module LyricFind
7
7
  doc = get_search_api_response artist, song_name
8
8
  return nil if doc.nil?
9
9
 
10
- doc.xpath('//album')[0].content.gsub("\r\n", '').strip
10
+ get_album doc
11
11
  end
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@ module LyricFind
7
7
  doc = get_search_api_response artist, song_name
8
8
  return nil if doc.nil?
9
9
 
10
- return doc.xpath('//tracks/track')[0]['duration']
10
+ get_duration doc
11
11
 
12
12
  end
13
13
  end
@@ -12,23 +12,7 @@ module LyricFind
12
12
  doc = get_search_api_response artist, song_name
13
13
  return if doc == nil
14
14
 
15
- begin
16
-
17
- track = doc.xpath('//tracks/track')[0]['amg']
18
-
19
- query_url = URI.escape "http://api.lyricfind.com/lyric.do?apikey=#{@display_key}&reqtype=default&trackid=amg:#{track}"
20
-
21
- response = open(query_url).read
22
- doc = Nokogiri::HTML(response)
23
- doc.encoding = 'utf-8'
24
-
25
- return nil if !(check_success doc, 101)
26
-
27
- lyrics = doc.xpath('//lyrics')
28
- lyrics[0].content
29
- rescue Exception => ex
30
- nil
31
- end
15
+ get_lyrics get_track_amg doc
32
16
  end
33
17
 
34
18
  def get_search_api_response artist, song_name
@@ -7,7 +7,7 @@ module LyricFind
7
7
  doc = get_search_api_response artist, song_name
8
8
  return nil if doc.nil?
9
9
 
10
- return doc.xpath('//snippet')[0].content.gsub("\r\n",'').strip
10
+ get_snippet doc
11
11
 
12
12
  end
13
13
  end
@@ -0,0 +1,61 @@
1
+ require_relative 'song_info'
2
+
3
+ module LyricFind
4
+ class API
5
+ def get_song_info artist, song_name
6
+ song_info = SongInfo.new
7
+
8
+ doc = get_search_api_response artist, song_name
9
+ return if doc == nil
10
+
11
+ song_info.artist = artist
12
+ song_info.song_name = song_name
13
+ song_info.album = get_album doc
14
+ song_info.duration = get_duration doc
15
+ song_info.snippet = get_snippet doc
16
+ song_info.instrumental = get_instrumental doc
17
+
18
+ song_info.lyrics = get_lyrics get_track_amg doc
19
+
20
+ song_info
21
+ end
22
+
23
+ def get_album doc
24
+ doc.xpath('//album')[0].content.gsub("\r\n", '').strip
25
+ end
26
+
27
+ def get_duration doc
28
+ doc.xpath('//tracks/track')[0]['duration']
29
+ end
30
+
31
+ def get_snippet doc
32
+ doc.xpath('//snippet')[0].content.gsub("\r\n",'').strip
33
+ end
34
+
35
+ def get_instrumental doc
36
+ doc.xpath('//tracks/track')[0]['instrumental'] == 'true'
37
+ end
38
+
39
+ def get_track_amg doc
40
+ doc.xpath('//tracks/track')[0]['amg']
41
+ end
42
+
43
+ def get_lyrics track
44
+ begin
45
+ query_url = URI.escape "http://api.lyricfind.com/lyric.do?apikey=#{@display_key}&reqtype=default&trackid=amg:#{track}"
46
+
47
+ response = open(query_url).read
48
+ doc = Nokogiri::HTML(response)
49
+ doc.encoding = 'utf-8'
50
+
51
+ return nil if !(check_success doc, 101)
52
+
53
+ lyrics = doc.xpath('//lyrics')
54
+ lyrics[0].content
55
+ rescue Exception => ex
56
+ nil
57
+ end
58
+
59
+ end
60
+ end
61
+ end
@@ -7,7 +7,7 @@ module LyricFind
7
7
  doc = get_search_api_response artist, song_name
8
8
  return nil if doc.nil?
9
9
 
10
- return doc.xpath('//tracks/track')[0]['instrumental'] == 'true'
10
+ get_instrumental doc
11
11
  end
12
12
  end
13
13
  end
@@ -0,0 +1,9 @@
1
+ require 'open-uri'
2
+ require 'nokogiri'
3
+
4
+ module LyricFind
5
+ class SongInfo
6
+ attr_accessor :lyrics, :artist, :song_name, :album, :duration, :snippet, :instrumental
7
+
8
+ end
9
+ end
@@ -1,3 +1,3 @@
1
1
  module LyricFind
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: LyricFind
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Itamar Hassin
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-08-01 00:00:00.000000000 Z
11
+ date: 2015-08-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -130,7 +130,9 @@ files:
130
130
  - lib/lyricfind/duration.rb
131
131
  - lib/lyricfind/get_lyrics_by_song_name.rb
132
132
  - lib/lyricfind/get_snippet_by_song_name.rb
133
+ - lib/lyricfind/get_song_info.rb
133
134
  - lib/lyricfind/instrumental.rb
135
+ - lib/lyricfind/song_info.rb
134
136
  - lib/lyricfind/version.rb
135
137
  - lyricfind.gemspec
136
138
  - vendor/cache/addressable-2.3.8.gem