karaoke 0.0.1 → 0.0.2

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.
data/README.md CHANGED
@@ -36,7 +36,7 @@ lyrics = Karaoke.lyrics("Armin van Buuren - This Is What It Feels Like")
36
36
  # => "Nobody here knocking at my door\n" and so on.
37
37
 
38
38
  # Behind the scenes, karaoke searches Google to find results on any of these sites:
39
- # (Rap)Genius, MetroLyrics, Lyricsfreak, AZLyrics, DirectLyrics and LyricsMania
39
+ # (Rap)Genius, MetroLyrics, Lyricsfreak, AZLyrics, DirectLyrics, LyricsMania and LimitlessLyrics
40
40
  # Next, karaoke reads the lyrics from the highest ranked Google search result.
41
41
 
42
42
  # If, for whatever reason, you want access to all of the found lyrics
@@ -20,4 +20,5 @@ require "karaoke/song/lyricsfreak"
20
20
  # require "karaoke/song/lyricsmode"
21
21
  require "karaoke/song/azlyrics"
22
22
  require "karaoke/song/directlyrics"
23
- require "karaoke/song/lyrics_mania"
23
+ require "karaoke/song/lyrics_mania"
24
+ require "karaoke/song/limitless_lyrics"
@@ -0,0 +1,40 @@
1
+ require "karaoke/song/base"
2
+
3
+ module Karaoke
4
+ module Song
5
+ class LimitlessLyrics < Base
6
+ def self.matches?(lyrics_url)
7
+ URI.parse(lyrics_url).host.end_with?("limitlesslyrics.com")
8
+ end
9
+
10
+ def artist
11
+ return @artist if defined?(@artist)
12
+
13
+ el = document.css("h1").first || document.css("h2").first
14
+ return @artist = nil unless el
15
+
16
+ @artist = el.text.split(" - ", 2)[0]
17
+ end
18
+
19
+ def title
20
+ return @title if defined?(@title)
21
+
22
+ el = document.css("h1").first || document.css("h2").first
23
+ return @title = nil unless el
24
+
25
+ @title = el.text.split(" - ", 2)[1]
26
+ end
27
+
28
+ def lyrics
29
+ return @lyrics if defined?(@lyrics)
30
+
31
+ el = document.css("#botmid2").first
32
+ return @lyrics = nil unless el
33
+
34
+ @lyrics = clean_html(el.css("p").inner_html)
35
+ end
36
+ end
37
+
38
+ register_song_type LimitlessLyrics
39
+ end
40
+ end
@@ -1,3 +1,3 @@
1
1
  module Karaoke
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: karaoke
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-09-13 00:00:00.000000000 Z
12
+ date: 2014-09-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
16
- requirement: &70358367183500 !ruby/object:Gem::Requirement
16
+ requirement: &70294424362520 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70358367183500
24
+ version_requirements: *70294424362520
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: google-search
27
- requirement: &70358367183080 !ruby/object:Gem::Requirement
27
+ requirement: &70294424362040 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70358367183080
35
+ version_requirements: *70294424362040
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70358367182660 !ruby/object:Gem::Requirement
38
+ requirement: &70294424361520 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70358367182660
46
+ version_requirements: *70294424361520
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &70358367182060 !ruby/object:Gem::Requirement
49
+ requirement: &70294424360960 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70358367182060
57
+ version_requirements: *70294424360960
58
58
  description: A Ruby library for easily finding the lyrics to your favorite songs
59
59
  email: douwe@selenight.nl
60
60
  executables: []
@@ -66,6 +66,7 @@ files:
66
66
  - lib/karaoke/song/base.rb
67
67
  - lib/karaoke/song/directlyrics.rb
68
68
  - lib/karaoke/song/genius.rb
69
+ - lib/karaoke/song/limitless_lyrics.rb
69
70
  - lib/karaoke/song/lyrics_mania.rb
70
71
  - lib/karaoke/song/lyricsfreak.rb
71
72
  - lib/karaoke/song/lyricsmode.rb
@@ -93,7 +94,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
93
94
  version: '0'
94
95
  segments:
95
96
  - 0
96
- hash: 1283531912695341570
97
+ hash: -3680872080017449051
97
98
  required_rubygems_version: !ruby/object:Gem::Requirement
98
99
  none: false
99
100
  requirements:
@@ -102,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
102
103
  version: '0'
103
104
  segments:
104
105
  - 0
105
- hash: 1283531912695341570
106
+ hash: -3680872080017449051
106
107
  requirements: []
107
108
  rubyforge_project:
108
109
  rubygems_version: 1.8.6