Class: Karaoke::Song::MetroLyrics

Inherits:
Base
  • Object
show all
Defined in:
lib/karaoke/song/metro_lyrics.rb

Instance Attribute Summary

Attributes inherited from Base

#lyrics_url

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from Karaoke::Song::Base

Class Method Details

.matches?(lyrics_url) ⇒ Boolean

Returns:

  • (Boolean)


6
7
8
9
10
# File 'lib/karaoke/song/metro_lyrics.rb', line 6

def self.matches?(lyrics_url)
  uri = URI.parse(lyrics_url)

  uri.host.end_with?("metrolyrics.com") && !uri.path.end_with?("-lyrics.html")
end

Instance Method Details

#artistObject



12
13
14
# File 'lib/karaoke/song/metro_lyrics.rb', line 12

def artist
  @artist ||= tracking_data["musicArtistName"]
end

#lyricsObject



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/karaoke/song/metro_lyrics.rb', line 20

def lyrics
  return @lyrics if defined?(@lyrics)

  el = document.css("#lyrics-body-text").first
  return @lyrics = nil unless el

  lyrics = clean_html(el.inner_html)
  lyrics.gsub!("</p><p class=\"verse\">", "\n\n")
  lyrics.gsub!("<p class=\"verse\">", "")
  lyrics.gsub!("</p>", "")
  @lyrics = lyrics
end

#titleObject



16
17
18
# File 'lib/karaoke/song/metro_lyrics.rb', line 16

def title
  @title ||= tracking_data["musicSongTitle"]
end