ehbrs-tools 0.27.0 → 0.28.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +34 -13
- data/lib/ehbrs/tools/runner/fs/selected.rb +1 -5
- data/lib/ehbrs/tools/runner/music/lyrics.rb +3 -4
- data/lib/ehbrs/tools/runner/music/lyrics_book.rb +41 -0
- data/lib/ehbrs/tools/runner/music/selected.rb +6 -6
- data/lib/ehbrs/tools/version.rb +1 -1
- data/lib/ehbrs/user_dirs.rb +2 -2
- data/spec/lib/ehbrs/tools/runner/fs/used_space_spec.rb +2 -1
- data/vendor/eac_fs/Gemfile +5 -0
- data/vendor/eac_fs/eac_fs.gemspec +20 -0
- data/vendor/{eac_ruby_utils/lib/eac_ruby_utils/filesystem_cache.rb → eac_fs/lib/eac_fs/cache.rb} +7 -2
- data/vendor/eac_fs/lib/eac_fs/file_info.rb +24 -0
- data/vendor/eac_fs/lib/eac_fs/patches/module/fs_cache.rb +10 -0
- data/vendor/eac_fs/lib/eac_fs/patches/module.rb +4 -0
- data/vendor/eac_fs/lib/eac_fs/patches/object/fs_cache.rb +10 -0
- data/vendor/eac_fs/lib/eac_fs/patches/object.rb +4 -0
- data/vendor/eac_fs/lib/eac_fs/patches/pathname/info.rb +12 -0
- data/vendor/eac_fs/lib/eac_fs/patches/pathname.rb +4 -0
- data/vendor/eac_fs/lib/eac_fs/patches.rb +4 -0
- data/vendor/eac_fs/lib/eac_fs/version.rb +5 -0
- data/vendor/eac_fs/lib/eac_fs.rb +7 -0
- data/vendor/{eac_ruby_utils/spec/lib/eac_ruby_utils/filesystem_cache_spec.rb → eac_fs/spec/lib/eac_fs/cache_spec.rb} +2 -2
- data/vendor/eac_fs/spec/rubocop_spec.rb +3 -0
- data/vendor/eac_fs/spec/spec_helper.rb +4 -0
- data/vendor/eac_ruby_base0/eac_ruby_base0.gemspec +2 -1
- data/vendor/eac_ruby_base0/lib/eac_ruby_base0/application.rb +3 -3
- data/vendor/eac_ruby_base0/lib/eac_ruby_base0/core_ext.rb +1 -0
- data/vendor/eac_ruby_base0/lib/eac_ruby_base0/runner.rb +16 -7
- data/vendor/eac_ruby_base0/lib/eac_ruby_base0/version.rb +1 -1
- data/vendor/eac_ruby_gems_utils/Gemfile +5 -0
- data/vendor/eac_ruby_gems_utils/LICENCE +16 -0
- data/vendor/eac_ruby_gems_utils/README.rdoc +3 -0
- data/vendor/eac_ruby_gems_utils/eac_ruby_gems_utils.gemspec +30 -0
- data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/gem/command.rb +33 -0
- data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/gem/version_file.rb +41 -0
- data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/gem.rb +97 -0
- data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/base.rb +58 -0
- data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/minitest.rb +25 -0
- data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/multiple/decorated_gem.rb +48 -0
- data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/multiple/result.rb +25 -0
- data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/multiple.rb +84 -0
- data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/rspec.rb +21 -0
- data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests.rb +9 -0
- data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/version.rb +5 -0
- data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils.rb +7 -0
- data/vendor/eac_ruby_gems_utils/spec/code/rubocop_check_spec.rb +3 -0
- data/vendor/eac_ruby_gems_utils/spec/lib/eac_ruby_gems_utils/gem/version_file_spec.rb +14 -0
- data/vendor/eac_ruby_gems_utils/spec/lib/eac_ruby_gems_utils/gem/version_file_spec_files/a_version_file.rb +7 -0
- data/vendor/eac_ruby_gems_utils/spec/lib/eac_ruby_gems_utils/gem_spec.rb +20 -0
- data/vendor/eac_ruby_gems_utils/spec/spec_helper.rb +4 -0
- data/vendor/eac_ruby_gems_utils/spec/support/mygem/Gemfile +5 -0
- data/vendor/eac_ruby_gems_utils/spec/support/mygem/Gemfile.lock +19 -0
- data/vendor/eac_ruby_gems_utils/spec/support/mygem/Rakefile +14 -0
- data/vendor/eac_ruby_gems_utils/spec/support/mygem/exe/myrunner +5 -0
- data/vendor/eac_ruby_gems_utils/spec/support/mygem/lib/mygem/version.rb +5 -0
- data/vendor/eac_ruby_gems_utils/spec/support/mygem/lib/mygem.rb +5 -0
- data/vendor/eac_ruby_gems_utils/spec/support/mygem/mygem.gemspec +16 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
- data/vendor/eac_templates/Gemfile +5 -0
- data/vendor/eac_templates/eac_templates.gemspec +19 -0
- data/vendor/eac_templates/lib/eac_templates/directory.rb +108 -0
- data/vendor/eac_templates/lib/eac_templates/file.rb +48 -0
- data/vendor/eac_templates/lib/eac_templates/patches/module/erb_template.rb +9 -0
- data/vendor/eac_templates/lib/eac_templates/patches/module/template.rb +10 -0
- data/vendor/eac_templates/lib/eac_templates/patches/module.rb +4 -0
- data/vendor/eac_templates/lib/eac_templates/patches/object/erb_template.rb +9 -0
- data/vendor/eac_templates/lib/eac_templates/patches/object/template.rb +9 -0
- data/vendor/eac_templates/lib/eac_templates/patches/object.rb +4 -0
- data/vendor/eac_templates/lib/eac_templates/patches.rb +4 -0
- data/vendor/eac_templates/lib/eac_templates/searcher.rb +53 -0
- data/vendor/eac_templates/lib/eac_templates/variable_not_found_error.rb +5 -0
- data/vendor/eac_templates/lib/eac_templates/variable_providers/base.rb +21 -0
- data/vendor/eac_templates/lib/eac_templates/variable_providers/config_reader.rb +27 -0
- data/vendor/eac_templates/lib/eac_templates/variable_providers/entries_reader.rb +23 -0
- data/vendor/eac_templates/lib/eac_templates/variable_providers/generic.rb +23 -0
- data/vendor/eac_templates/lib/eac_templates/variable_providers/hash.rb +27 -0
- data/vendor/eac_templates/lib/eac_templates/variable_providers.rb +23 -0
- data/vendor/eac_templates/lib/eac_templates/version.rb +5 -0
- data/vendor/eac_templates/lib/eac_templates.rb +7 -0
- data/vendor/eac_templates/spec/lib/eac_templates/file_spec.rb +35 -0
- data/vendor/eac_templates/spec/lib/eac_templates/file_spec_files/expected_content +2 -0
- data/vendor/eac_templates/spec/lib/eac_templates/file_spec_files/source.template +2 -0
- data/vendor/eac_templates/spec/lib/eac_templates/searcher_spec.rb +30 -0
- data/vendor/eac_templates/spec/lib/eac_templates/searcher_spec_files/path1/subdir1/file1.template +1 -0
- data/vendor/eac_templates/spec/lib/eac_templates/searcher_spec_files/path1/subdir1/file2 +1 -0
- data/vendor/eac_templates/spec/lib/eac_templates/searcher_spec_files/path2/subdir1/file3.template +1 -0
- data/vendor/eac_templates/spec/lib/object/template_spec.rb +23 -0
- data/vendor/eac_templates/spec/lib/object/template_spec_files/path/my_stub_with_template +1 -0
- data/vendor/eac_templates/spec/rubocop_spec.rb +3 -0
- data/vendor/eac_templates/spec/spec_helper.rb +4 -0
- data/vendor/ehbrs_ruby_utils/lib/ehbrs_ruby_utils/core_ext.rb +5 -0
- data/vendor/ehbrs_ruby_utils/lib/ehbrs_ruby_utils/fs/selected/build.rb +1 -1
- data/vendor/ehbrs_ruby_utils/lib/ehbrs_ruby_utils/fs/selected/build_file.rb +1 -1
- data/vendor/ehbrs_ruby_utils/lib/ehbrs_ruby_utils/fs/selected.rb +2 -2
- data/vendor/ehbrs_ruby_utils/lib/ehbrs_ruby_utils/music/lyrics_book/album.rb +42 -0
- data/vendor/ehbrs_ruby_utils/lib/ehbrs_ruby_utils/music/lyrics_book/resource.rb +64 -0
- data/vendor/ehbrs_ruby_utils/lib/ehbrs_ruby_utils/music/lyrics_book/song.rb +68 -0
- data/vendor/ehbrs_ruby_utils/lib/ehbrs_ruby_utils/music/lyrics_book.rb +65 -0
- data/vendor/ehbrs_ruby_utils/lib/ehbrs_ruby_utils/patches/object.rb +4 -0
- data/vendor/ehbrs_ruby_utils/lib/ehbrs_ruby_utils/patches.rb +4 -0
- data/vendor/ehbrs_ruby_utils/lib/ehbrs_ruby_utils/version.rb +1 -1
- data/vendor/ehbrs_ruby_utils/template/ehbrs_ruby_utils/music/lyrics_book/album/inner.html.erb +3 -0
- data/vendor/ehbrs_ruby_utils/template/ehbrs_ruby_utils/music/lyrics_book/custom_style.css +11 -0
- data/vendor/ehbrs_ruby_utils/template/ehbrs_ruby_utils/music/lyrics_book/index.html.erb +14 -0
- data/vendor/ehbrs_ruby_utils/template/ehbrs_ruby_utils/music/lyrics_book/main.html.erb +24 -0
- data/vendor/ehbrs_ruby_utils/template/ehbrs_ruby_utils/music/lyrics_book/resource/main.html.erb +8 -0
- data/vendor/ehbrs_ruby_utils/template/ehbrs_ruby_utils/music/lyrics_book/song/inner.html.erb +5 -0
- data/vendor/ultimate_lyrics/lib/ultimate_lyrics/provider.rb +4 -0
- data/vendor/ultimate_lyrics/lib/ultimate_lyrics/provider_search.rb +1 -1
- data/vendor/ultimate_lyrics/lib/ultimate_lyrics/providers_data.xml +2 -1
- data/vendor/ultimate_lyrics/lib/ultimate_lyrics/version.rb +1 -1
- data/vendor/ultimate_lyrics/spec/lib/ultimate_lyrics/parser_spec_files/encyclopaedia_metallum__michael_jackson_thriller.target.yaml +1 -1
- data/vendor/ultimate_lyrics/spec/lib/ultimate_lyrics/parser_spec_files/encyclopaedia_metallum__milton_nascimento_rouxinol.target.yaml +1 -1
- data/vendor/ultimate_lyrics/spec/lib/ultimate_lyrics/parser_spec_files/hindilyrics_net_bollywood_songs__michael_jackson_thriller.source.html +18 -18
- data/vendor/ultimate_lyrics/spec/lib/ultimate_lyrics/parser_spec_files/hindilyrics_net_bollywood_songs__michael_jackson_thriller.target.yaml +1 -1
- data/vendor/ultimate_lyrics/spec/lib/ultimate_lyrics/parser_spec_files/hindilyrics_net_bollywood_songs__milton_nascimento_rouxinol.source.html +18 -18
- data/vendor/ultimate_lyrics/spec/lib/ultimate_lyrics/parser_spec_files/hindilyrics_net_bollywood_songs__milton_nascimento_rouxinol.target.yaml +1 -1
- data/vendor/ultimate_lyrics/spec/lib/ultimate_lyrics/parser_spec_files/lyrics_com__milton_nascimento_rouxinol.target.yaml +1 -3
- data/vendor/ultimate_lyrics/spec/lib/ultimate_lyrics/parser_spec_files/lyricsplugin_com__michael_jackson_thriller.target.yaml +1 -1
- data/vendor/ultimate_lyrics/spec/lib/ultimate_lyrics/parser_spec_files/lyricsplugin_com__milton_nascimento_rouxinol.target.yaml +1 -1
- data/vendor/ultimate_lyrics/spec/lib/ultimate_lyrics/parser_spec_files/lyricsreg_com__milton_nascimento_rouxinol.source.html +3 -3
- data/vendor/ultimate_lyrics/spec/lib/ultimate_lyrics/parser_spec_files/lyricsreg_com__milton_nascimento_rouxinol.target.yaml +1 -1
- data/vendor/ultimate_lyrics/spec/lib/ultimate_lyrics/parser_spec_files/mp3lyrics_org__michael_jackson_thriller.source.html +3 -3
- data/vendor/ultimate_lyrics/spec/lib/ultimate_lyrics/parser_spec_files/mp3lyrics_org__michael_jackson_thriller.target.yaml +1 -1
- data/vendor/ultimate_lyrics/spec/lib/ultimate_lyrics/parser_spec_files/mp3lyrics_org__milton_nascimento_rouxinol.source.html +3 -3
- data/vendor/ultimate_lyrics/spec/lib/ultimate_lyrics/parser_spec_files/mp3lyrics_org__milton_nascimento_rouxinol.target.yaml +1 -1
- data/vendor/ultimate_lyrics/spec/lib/ultimate_lyrics/parser_spec_files/songlyrics_com__michael_jackson_thriller.source.html +15 -12
- data/vendor/ultimate_lyrics/spec/lib/ultimate_lyrics/parser_spec_files/songlyrics_com__michael_jackson_thriller.target.yaml +1 -1
- metadata +92 -7
- data/lib/ehbrs/patches/module/erb_template.rb +0 -11
- data/lib/ehbrs/patches/object/erb_template.rb +0 -9
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/fs_cache.rb +0 -12
@@ -0,0 +1,64 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'ehbrs_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module EhbrsRubyUtils
|
6
|
+
module Music
|
7
|
+
class LyricsBook
|
8
|
+
class Resource
|
9
|
+
class << self
|
10
|
+
def create_list(parent, files)
|
11
|
+
r = files.sort.map { |path| new(parent, path) }.select(&:valid?)
|
12
|
+
previous = parent.first_previous
|
13
|
+
r.map do |e|
|
14
|
+
e.reset_cache
|
15
|
+
e.previous = previous
|
16
|
+
previous = e
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
enable_simple_cache
|
22
|
+
include ::Comparable
|
23
|
+
common_constructor :parent, :path
|
24
|
+
attr_accessor :previous
|
25
|
+
|
26
|
+
def filename
|
27
|
+
path.relative_path_from(parent.path)
|
28
|
+
end
|
29
|
+
|
30
|
+
def <=>(other)
|
31
|
+
path <=> other.path
|
32
|
+
end
|
33
|
+
|
34
|
+
def link_to_header
|
35
|
+
"<a href=\"\##{header_id}\" id=\"#{index_id}\">#{header_title}</a>"
|
36
|
+
end
|
37
|
+
|
38
|
+
def index_id
|
39
|
+
"index_#{header_id}"
|
40
|
+
end
|
41
|
+
|
42
|
+
def header_id
|
43
|
+
header_title.variableize
|
44
|
+
end
|
45
|
+
|
46
|
+
def header_index
|
47
|
+
parent.header_index + 1
|
48
|
+
end
|
49
|
+
|
50
|
+
def output_main
|
51
|
+
::EhbrsRubyUtils::Music::LyricsBook::Resource.erb_template('main.html.erb', binding)
|
52
|
+
end
|
53
|
+
|
54
|
+
def output_index
|
55
|
+
erb_template('index.html.erb')
|
56
|
+
end
|
57
|
+
|
58
|
+
def type
|
59
|
+
self.class.name.demodulize.underscore
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'ehbrs_ruby_utils/core_ext'
|
4
|
+
require 'ehbrs_ruby_utils/music/lyrics_book/resource'
|
5
|
+
|
6
|
+
module EhbrsRubyUtils
|
7
|
+
module Music
|
8
|
+
class LyricsBook
|
9
|
+
class Song < ::EhbrsRubyUtils::Music::LyricsBook::Resource
|
10
|
+
enable_simple_cache
|
11
|
+
delegate :book, to: :album
|
12
|
+
delegate :provider, to: :book
|
13
|
+
delegate :tag, :to_s, to: :container
|
14
|
+
|
15
|
+
def album
|
16
|
+
parent
|
17
|
+
end
|
18
|
+
|
19
|
+
def lyrics
|
20
|
+
fetch_lyrics unless lyrics_cached?
|
21
|
+
cached_lyrics
|
22
|
+
end
|
23
|
+
|
24
|
+
def valid?
|
25
|
+
tag.present?
|
26
|
+
end
|
27
|
+
|
28
|
+
def lyrics_cached?
|
29
|
+
lyrics_cache.cached?
|
30
|
+
end
|
31
|
+
|
32
|
+
def cached_lyrics
|
33
|
+
::YAML.load_file(lyrics_cache.content_path)
|
34
|
+
end
|
35
|
+
|
36
|
+
def header_title
|
37
|
+
"#{number} - #{title}"
|
38
|
+
end
|
39
|
+
|
40
|
+
delegate :title, to: :tag
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def container_uncached
|
45
|
+
::EhbrsRubyUtils::Videos::Container.new(path)
|
46
|
+
end
|
47
|
+
|
48
|
+
def fetch_lyrics
|
49
|
+
lyrics = fetched_lyrics
|
50
|
+
lyrics_cache.write(lyrics.to_yaml)
|
51
|
+
end
|
52
|
+
|
53
|
+
def fetched_lyrics
|
54
|
+
container.lyrics_by_provider(provider)
|
55
|
+
end
|
56
|
+
|
57
|
+
def lyrics_cache
|
58
|
+
(%w[artist album title].map { |k| tag.send(k) } + [provider.identifier])
|
59
|
+
.inject(fs_cache) { |a, e| a.child(e) }
|
60
|
+
end
|
61
|
+
|
62
|
+
def number_uncached
|
63
|
+
previous.if_present(0, &:number) + 1
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'ehbrs_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module EhbrsRubyUtils
|
6
|
+
module Music
|
7
|
+
class LyricsBook
|
8
|
+
require_sub __FILE__
|
9
|
+
|
10
|
+
DEFAULT_PROVIDER_NAME = 'lyrics.com'
|
11
|
+
DEFAULT_TITLE = 'Letras de músicas'
|
12
|
+
|
13
|
+
enable_listable
|
14
|
+
lists.add_symbol :option, :provider_name, :title
|
15
|
+
enable_simple_cache
|
16
|
+
common_constructor :source_dir, :options, default: [{}] do
|
17
|
+
self.source_dir = source_dir.to_pathname
|
18
|
+
self.options = self.class.lists.option.hash_keys_validate!(options)
|
19
|
+
end
|
20
|
+
|
21
|
+
def first_previous
|
22
|
+
nil
|
23
|
+
end
|
24
|
+
|
25
|
+
def header_index
|
26
|
+
1
|
27
|
+
end
|
28
|
+
|
29
|
+
def output
|
30
|
+
erb_template('main.html.erb')
|
31
|
+
end
|
32
|
+
|
33
|
+
def path
|
34
|
+
source_dir
|
35
|
+
end
|
36
|
+
|
37
|
+
def title
|
38
|
+
options[OPTION_TITLE].if_present(DEFAULT_TITLE)
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def albums_directories_uncached
|
44
|
+
r = []
|
45
|
+
t = ::EacRubyUtils::Fs::Traverser.new
|
46
|
+
t.recursive = true
|
47
|
+
t.check_directory = ->(directory) { r << directory }
|
48
|
+
t.check_path(source_dir)
|
49
|
+
r
|
50
|
+
end
|
51
|
+
|
52
|
+
def albums_uncached
|
53
|
+
::EhbrsRubyUtils::Music::LyricsBook::Album.create_list(self, albums_directories)
|
54
|
+
end
|
55
|
+
|
56
|
+
def provider_uncached
|
57
|
+
::UltimateLyrics::Provider.by_name(provider_name)
|
58
|
+
end
|
59
|
+
|
60
|
+
def provider_name
|
61
|
+
options[OPTION_PROVIDER_NAME].if_present(DEFAULT_PROVIDER_NAME)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title><%= title %></title>
|
5
|
+
<meta charset="utf-8">
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
7
|
+
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
|
8
|
+
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
|
9
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.5.0/font/bootstrap-icons.css">
|
10
|
+
<style>
|
11
|
+
<%= template.child('custom_style.css').content %>
|
12
|
+
</style>
|
13
|
+
</head>
|
14
|
+
<body>
|
15
|
+
<div class="container" >
|
16
|
+
<h1><%= title %></h1>
|
17
|
+
<h2>Índice</h2>
|
18
|
+
<%= erb_template('index.html.erb') %>
|
19
|
+
<% albums.each do |album| %>
|
20
|
+
<%= album.output_main %>
|
21
|
+
<% end %>
|
22
|
+
</div>
|
23
|
+
</body>
|
24
|
+
</html>
|
data/vendor/ehbrs_ruby_utils/template/ehbrs_ruby_utils/music/lyrics_book/resource/main.html.erb
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
<div class="<%= type %>">
|
2
|
+
<h<%= header_index %> id='<%= header_id %>' >
|
3
|
+
<%= header_title %>
|
4
|
+
<a href="#<%= index_id %>" ><i class="bi-arrow-up-circle-fill"></i></a>
|
5
|
+
</h<%= header_index %>>
|
6
|
+
<span class="filename"><%= filename %></span>
|
7
|
+
<%= erb_template('inner.html.erb') %>
|
8
|
+
</div>
|
@@ -26,7 +26,7 @@ module UltimateLyrics
|
|
26
26
|
|
27
27
|
# @return [UltimateLyrics::Parser]
|
28
28
|
def lyrics_original_text
|
29
|
-
::Aranha::Parsers::SourceAddress.detect_sub(url).content
|
29
|
+
::Aranha::Parsers::SourceAddress.detect_sub(url).content.force_encoding(provider.encoding)
|
30
30
|
rescue ::Aranha::Parsers::SourceAddress::FetchContentError
|
31
31
|
nil
|
32
32
|
end
|
@@ -147,7 +147,8 @@ Copy of https://raw.githubusercontent.com/clementine-player/Clementine/fb93ae4b0
|
|
147
147
|
<item tag="<div id="lyrics" class="SCREENONLY">" />
|
148
148
|
</extract>
|
149
149
|
<exclude>
|
150
|
-
<item begin="<br>
|
150
|
+
<item begin="<br>" end="<br>" />
|
151
|
+
<item begin="<a target='_blank'" end="></a>" />
|
151
152
|
</exclude>
|
152
153
|
<invalidIndicator value="Click to search for the Lyrics on Lyrics.com" />
|
153
154
|
<invalidIndicator value="we do not have the lyric for this song" />
|
@@ -1,13 +1,13 @@
|
|
1
1
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
2
2
|
<html>
|
3
|
-
<head><script type="text/javascript">var abp;</script><script type="text/javascript" src="http://www.hindilyrics.net/px.js?ch=1"></script><script type="text/javascript" src="http://www.hindilyrics.net/px.js?ch=2"></script><script type="text/javascript">function handleABPDetect(){try{if(!abp) return;var imglog = document.createElement("img");imglog.style.height="0px";imglog.style.width="0px";imglog.src="http://www.hindilyrics.net/sk-logabpstatus.php?a=
|
3
|
+
<head><script type="text/javascript">var abp;</script><script type="text/javascript" src="http://www.hindilyrics.net/px.js?ch=1"></script><script type="text/javascript" src="http://www.hindilyrics.net/px.js?ch=2"></script><script type="text/javascript">function handleABPDetect(){try{if(!abp) return;var imglog = document.createElement("img");imglog.style.height="0px";imglog.style.width="0px";imglog.src="http://www.hindilyrics.net/sk-logabpstatus.php?a=bC9LdFZpSkV3MjhjcEhPaHlUakV0dFUwS3hXTWg2RVFYdzJEbHF6Y1hic3JaUW9RNEZmMVhrZFR4UWt1TW9SMTVjVDJJN2c3Mm9lVjU2ZTUzRFQzdG02YmpRRm13bWt0dVFLdnhyTTQ2QStieFFZRmcxNVJxTlVsVFIwSjZ3NzY=&b="+abp;document.body.appendChild(imglog);if(typeof abperurl !== "undefined" && abperurl!="")window.top.location=abperurl;}catch(err){}}</script><meta name="tids" content="a='12960' b='14992' c='hindilyrics.net' d='entity_mapped'" /><title>Hindilyrics.net Is For Sale</title>
|
4
4
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
6
6
|
<meta name="description" content="The domain name Hindilyrics.net is for sale. Call BuyDomains at 844-896-7299 to get a price quote and get your business online today!" />
|
7
7
|
<style type="text/css">
|
8
8
|
|
9
|
-
@font-face {font-family: "open-sans";src: url("http://
|
10
|
-
@font-face {font-family: "ubuntu-b";src: url("http://
|
9
|
+
@font-face {font-family: "open-sans";src: url("http://i2.cdn-image.com/__media__/fonts/open-sans/open-sans.eot");src: url("http://i2.cdn-image.com/__media__/fonts/open-sans/open-sans.eot?#iefix") format("embedded-opentype"),url("http://i2.cdn-image.com/__media__/fonts/open-sans/open-sans.woff") format("woff"),url("http://i2.cdn-image.com/__media__/fonts/open-sans/open-sans.woff2") format("woff2"),url("http://i2.cdn-image.com/__media__/fonts/open-sans/open-sans.ttf") format("truetype"),url("http://i2.cdn-image.com/__media__/fonts/open-sans/open-sans.otf") format("opentype"),url("http://i2.cdn-image.com/__media__/fonts/open-sans/open-sans.svg#open-sans") format("svg");font-weight: normal;font-style: normal;}
|
10
|
+
@font-face {font-family: "ubuntu-b";src: url("http://i2.cdn-image.com/__media__/fonts/ubuntu-b/ubuntu-b.eot");src: url("http://i2.cdn-image.com/__media__/fonts/ubuntu-b/ubuntu-b.eot?#iefix") format("embedded-opentype"),url("http://i2.cdn-image.com/__media__/fonts/ubuntu-b/ubuntu-b.woff") format("woff"),url("http://i2.cdn-image.com/__media__/fonts/ubuntu-b/ubuntu-b.woff2") format("woff2"),url("http://i2.cdn-image.com/__media__/fonts/ubuntu-b/ubuntu-b.ttf") format("truetype"),url("http://i2.cdn-image.com/__media__/fonts/ubuntu-b/ubuntu-b.otf") format("opentype"),url("http://i2.cdn-image.com/__media__/fonts/ubuntu-b/ubuntu-b.svg#ubuntu-b") format("svg");font-weight: normal;font-style: normal;}
|
11
11
|
*{margin:0; padding:0; font-family:Arial, Helvetica, sans-serif}
|
12
12
|
a {text-decoration:none; outline:none}
|
13
13
|
a img {border:none}
|
@@ -22,14 +22,14 @@ input{outline:none}
|
|
22
22
|
|
23
23
|
body{font-size:14px; font-family:
|
24
24
|
open-sans
|
25
|
-
,sans-serif; background: #303030 url(http://
|
25
|
+
,sans-serif; background: #303030 url(http://i2.cdn-image.com/__media__/pics/10974/background1.jpg) repeat left center fixed; background-size: cover; -webkit-text-size-adjust: 100%;}
|
26
26
|
|
27
27
|
|
28
|
-
.frt_arr{float:left;width:345px; height:636px; background:url(http://
|
29
|
-
.lst_arr{float:left;width:345px; height:636px; background:url(http://
|
28
|
+
.frt_arr{float:left;width:345px; height:636px; background:url(http://i2.cdn-image.com/__media__/pics/12066/arr2.jpg);background-position:right center; background-repeat:no-repeat; }
|
29
|
+
.lst_arr{float:left;width:345px; height:636px; background:url(http://i2.cdn-image.com/__media__/pics/12066/arr1.jpg); background-position:left center; background-repeat:no-repeat;}
|
30
30
|
|
31
31
|
|
32
|
-
div.search-form{height:35px; width: 435px; background: #ffffff url(http://
|
32
|
+
div.search-form{height:35px; width: 435px; background: #ffffff url(http://i2.cdn-image.com/__media__/pics/10647/search.png) no-repeat 10px center; margin: 0 auto; border: 1px solid #cccccc}
|
33
33
|
.srchTxt{background: transparent none repeat scroll 0 0; border: 0 none; float: left; font-size: 16px; height: 25px; line-height: 25px; padding: 5px; width: 332px; color: #333333;padding-left: 30px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
|
34
34
|
.srchBtn {background: #6aae2b; border: none; color: #fff; cursor: pointer; float: right; font-size: 15px; height: 35px; outline: medium none; width: 68px;-webkit-appearance:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;font-family:
|
35
35
|
ubuntu-b
|
@@ -88,7 +88,7 @@ div.search-form{width: 300px}
|
|
88
88
|
.frt_arr{display: none}
|
89
89
|
.lst_arr{display: none}
|
90
90
|
.wrapper{width: 400px}
|
91
|
-
.mobile-bg{background: url(http://
|
91
|
+
.mobile-bg{background: url(http://i2.cdn-image.com/__media__/pics/10901/mobile-bg.png) no-repeat center bottom;background-size:cover;width: 462px;background-size: 100%;background-position: -3px bottom;display: block;height: 120px; margin: 0 auto}
|
92
92
|
|
93
93
|
.kwds li a{font-size: 16px; line-height: 20px}
|
94
94
|
.kwds{padding-bottom: 10px}
|
@@ -123,7 +123,7 @@ li{float:none}
|
|
123
123
|
<![endif]-->
|
124
124
|
|
125
125
|
|
126
|
-
<script language="JavaScript" type="text/javascript" src="http://
|
126
|
+
<script language="JavaScript" type="text/javascript" src="http://i2.cdn-image.com/__media__/js/min.js?v2.3"></script>
|
127
127
|
|
128
128
|
<script> var dataLayer = window.dataLayer = window.dataLayer || []; </script> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-NL5LTF');</script> <!-- End Google Tag Manager -->
|
129
129
|
|
@@ -154,20 +154,20 @@ dataLayer.push({
|
|
154
154
|
<div class="kwds">
|
155
155
|
<span class="related-searches-custom">Related Searches:</span>
|
156
156
|
<ul>
|
157
|
-
<li><a href="http://www.hindilyrics.net/
|
158
|
-
<li><a href="http://www.hindilyrics.net/
|
159
|
-
<li><a href="http://www.hindilyrics.net/
|
160
|
-
<li><a href="http://www.hindilyrics.net/
|
161
|
-
<li><a href="http://www.hindilyrics.net/
|
162
|
-
<li><a href="http://www.hindilyrics.net/
|
163
|
-
<li><a href="http://www.hindilyrics.net/
|
157
|
+
<li><a href="http://www.hindilyrics.net/Free_Credit_Report.cfm?fp=WV7Ehq%2BXwPDNqYPjED7o7lEX2AGUHSpK5dMMyse1skhxU%2BRKsFzXW4WQCC3I93scsi%2F%2F5LKo7jPfteEN6SQ7elOgY5nwDM2ZSqUUIZ5LlPTSaOmKnDHtsX6n0fYL70BJ%2B3SNjHqKNQdd3h%2FmCK8dCdTmPAyQCJO%2FKeTupZHJgeTBNgxZraJVJV0BlI%2Fs6kVx&kbetu=1&maxads=0&kld=1042&prvtof=CHxEGHwNV%2FTi34VDx7lWU2GBqixQztyDuStSr%2FsXi7o%3D&&&kt=112&&ki=11539660&ktd=0&kld=1042&kp=1" target="_top" onmouseover="changeStatus('Free Credit Report');return true;" onmouseout="changeStatus('');return true;" onclick="if(typeof(showPop) != 'undefined')showPop=0;return modifyKeywordClickURL(this, 'kwclk');;" title="Free Credit Report" id="dk1" name="dk1" >Free Credit Report</a></li>
|
158
|
+
<li><a href="http://www.hindilyrics.net/10_Best_Mutual_Funds.cfm?fp=WV7Ehq%2BXwPDNqYPjED7o7lEX2AGUHSpK5dMMyse1skhxU%2BRKsFzXW4WQCC3I93scsi%2F%2F5LKo7jPfteEN6SQ7elOgY5nwDM2ZSqUUIZ5LlPTSaOmKnDHtsX6n0fYL70BJ%2B3SNjHqKNQdd3h%2FmCK8dCdTmPAyQCJO%2FKeTupZHJgeTBNgxZraJVJV0BlI%2Fs6kVx&kbetu=1&maxads=0&kld=1042&prvtof=CHxEGHwNV%2FTi34VDx7lWU2GBqixQztyDuStSr%2FsXi7o%3D&&&kt=112&&ki=72996&ktd=0&kld=1042&kp=2" target="_top" onmouseover="changeStatus('10 Best Mutual Funds');return true;" onmouseout="changeStatus('');return true;" onclick="if(typeof(showPop) != 'undefined')showPop=0;return modifyKeywordClickURL(this, 'kwclk');;" title="10 Best Mutual Funds" id="dk2" name="dk2" >10 Best Mutual Funds</a></li>
|
159
|
+
<li><a href="http://www.hindilyrics.net/Online_classifieds.cfm?fp=WV7Ehq%2BXwPDNqYPjED7o7lEX2AGUHSpK5dMMyse1skhxU%2BRKsFzXW4WQCC3I93scsi%2F%2F5LKo7jPfteEN6SQ7elOgY5nwDM2ZSqUUIZ5LlPTSaOmKnDHtsX6n0fYL70BJ%2B3SNjHqKNQdd3h%2FmCK8dCdTmPAyQCJO%2FKeTupZHJgeTBNgxZraJVJV0BlI%2Fs6kVx&kbetu=1&maxads=0&kld=1042&prvtof=CHxEGHwNV%2FTi34VDx7lWU2GBqixQztyDuStSr%2FsXi7o%3D&&&kt=112&&ki=21227026&ktd=0&kld=1042&kp=3" target="_top" onmouseover="changeStatus('Online classifieds');return true;" onmouseout="changeStatus('');return true;" onclick="if(typeof(showPop) != 'undefined')showPop=0;return modifyKeywordClickURL(this, 'kwclk');;" title="Online classifieds" id="dk3" name="dk3" >Online classifieds</a></li>
|
160
|
+
<li><a href="http://www.hindilyrics.net/Contact_Lens.cfm?fp=WV7Ehq%2BXwPDNqYPjED7o7lEX2AGUHSpK5dMMyse1skhxU%2BRKsFzXW4WQCC3I93scsi%2F%2F5LKo7jPfteEN6SQ7elOgY5nwDM2ZSqUUIZ5LlPTSaOmKnDHtsX6n0fYL70BJ%2B3SNjHqKNQdd3h%2FmCK8dCdTmPAyQCJO%2FKeTupZHJgeTBNgxZraJVJV0BlI%2Fs6kVx&kbetu=1&maxads=0&kld=1042&prvtof=CHxEGHwNV%2FTi34VDx7lWU2GBqixQztyDuStSr%2FsXi7o%3D&&&kt=112&&ki=6837160&ktd=0&kld=1042&kp=4" target="_top" onmouseover="changeStatus('Contact Lens');return true;" onmouseout="changeStatus('');return true;" onclick="if(typeof(showPop) != 'undefined')showPop=0;return modifyKeywordClickURL(this, 'kwclk');;" title="Contact Lens" id="dk4" name="dk4" >Contact Lens</a></li>
|
161
|
+
<li><a href="http://www.hindilyrics.net/Credit_Card_Application.cfm?fp=WV7Ehq%2BXwPDNqYPjED7o7lEX2AGUHSpK5dMMyse1skhxU%2BRKsFzXW4WQCC3I93scsi%2F%2F5LKo7jPfteEN6SQ7elOgY5nwDM2ZSqUUIZ5LlPTSaOmKnDHtsX6n0fYL70BJ%2B3SNjHqKNQdd3h%2FmCK8dCdTmPAyQCJO%2FKeTupZHJgeTBNgxZraJVJV0BlI%2Fs6kVx&kbetu=1&maxads=0&kld=1042&prvtof=CHxEGHwNV%2FTi34VDx7lWU2GBqixQztyDuStSr%2FsXi7o%3D&&&kt=112&&ki=7242435&ktd=0&kld=1042&kp=5" target="_top" onmouseover="changeStatus('Credit Card Application');return true;" onmouseout="changeStatus('');return true;" onclick="if(typeof(showPop) != 'undefined')showPop=0;return modifyKeywordClickURL(this, 'kwclk');;" title="Credit Card Application" id="dk5" name="dk5" >Credit Card Application</a></li>
|
162
|
+
<li><a href="http://www.hindilyrics.net/Best_Penny_Stocks.cfm?fp=WV7Ehq%2BXwPDNqYPjED7o7lEX2AGUHSpK5dMMyse1skhxU%2BRKsFzXW4WQCC3I93scsi%2F%2F5LKo7jPfteEN6SQ7elOgY5nwDM2ZSqUUIZ5LlPTSaOmKnDHtsX6n0fYL70BJ%2B3SNjHqKNQdd3h%2FmCK8dCdTmPAyQCJO%2FKeTupZHJgeTBNgxZraJVJV0BlI%2Fs6kVx&kbetu=1&maxads=0&kld=1042&prvtof=CHxEGHwNV%2FTi34VDx7lWU2GBqixQztyDuStSr%2FsXi7o%3D&&&kt=112&&ki=3482138&ktd=0&kld=1042&kp=6" target="_top" onmouseover="changeStatus('Best Penny Stocks');return true;" onmouseout="changeStatus('');return true;" onclick="if(typeof(showPop) != 'undefined')showPop=0;return modifyKeywordClickURL(this, 'kwclk');;" title="Best Penny Stocks" id="dk6" name="dk6" >Best Penny Stocks</a></li>
|
163
|
+
<li><a href="http://www.hindilyrics.net/Anti_Wrinkle_Creams.cfm?fp=WV7Ehq%2BXwPDNqYPjED7o7lEX2AGUHSpK5dMMyse1skhxU%2BRKsFzXW4WQCC3I93scsi%2F%2F5LKo7jPfteEN6SQ7elOgY5nwDM2ZSqUUIZ5LlPTSaOmKnDHtsX6n0fYL70BJ%2B3SNjHqKNQdd3h%2FmCK8dCdTmPAyQCJO%2FKeTupZHJgeTBNgxZraJVJV0BlI%2Fs6kVx&kbetu=1&maxads=0&kld=1042&prvtof=CHxEGHwNV%2FTi34VDx7lWU2GBqixQztyDuStSr%2FsXi7o%3D&&&kt=112&&ki=1919926&ktd=0&kld=1042&kp=7" target="_top" onmouseover="changeStatus('Anti Wrinkle Creams');return true;" onmouseout="changeStatus('');return true;" onclick="if(typeof(showPop) != 'undefined')showPop=0;return modifyKeywordClickURL(this, 'kwclk');;" title="Anti Wrinkle Creams" id="dk7" name="dk7" >Anti Wrinkle Creams</a></li>
|
164
164
|
</ul>
|
165
165
|
</div>
|
166
166
|
<!-- <div class="search-form clearfix">
|
167
167
|
<form id="searchform1" name="searchform1" style="visibility:hidden;display:none;" action="http://www.hindilyrics.net/display.cfm" method="get" target="_top" onsubmit="showPop=0;" >
|
168
168
|
<input name="s" type="text" onClick="this.value='';" class="srchTxt" />
|
169
169
|
<input type="submit" class="srchBtn" value="Search" />
|
170
|
-
<input type="hidden" name="gsp" value="
|
170
|
+
<input type="hidden" name="gsp" value="UGJTVkQ2c1l5cEthdlRxbDJsb2ZsczRKa0czemg4UUZYcnhUNU96bzdxelNqZGI2Zy83M3JaQjNDZklvM2FJUEJvMHo0eDlGejY3d2l2NS94MGNNa0ViMlJNUXhmNXdWeTE2RnB1dHNiWjRUWG5lL2VOc21keVpjdTFMbEcyUFE2VGxLZ0UwM3NoamRyQkZzbDh5QU4zRit6MWh4SzVnZ3l0S1NwSnVpOCszZXhuWDFPREtTZlpaTHpISkQxT1hIdkc4MjRqaXV1b3RERENYM2o0Q3FleXNLSUUwSGUxSWoyYmpHOWoycE9xeDNXWks2N29JN1A1a2FZS0duVU91ZU9TaDR1ZGt4eHhSTjdBOExQdTFzeml6d2g0b08razdZcFZ5OWlBQjN1Q1dwUGVJcnFHLzc5YTM3UkZDeVV3Z2JKY2tRekRCZkF2dGswRDhJOW1DV25VVmM0eTB4ekF5Sjg2SktHWUxOMkdrPQ%3D%3D" /></form>
|
171
171
|
</div> -->
|
172
172
|
</div>
|
173
173
|
<div class="arrows frt_arr"></div>
|
@@ -187,7 +187,7 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
|
187
187
|
<script type="text/javascript" language="javascript">
|
188
188
|
try{handleABPDetect();}catch(err){}
|
189
189
|
</script>
|
190
|
-
<div style='display:none;visibility:hidden;'><script language="javascript" > function _bpx_() { try {var saScript = document.createElement("script"); saScript.src = location.protocol + "//pxlgnpgecom-a.akamaihd.net/javascripts/browserfp.min.js?templateId=10&customerId=9CU246R04"; saScript.async = "async"; document.body.appendChild(saScript); saScript.onload = function() {try{var fp_instance = new browserfp();var pageAttr = {};pageAttr.kw_id = '';pageAttr.kw_pos = '0';pageAttr.page_id = 'landing_page';pageAttr.vi_id = '
|
190
|
+
<div style='display:none;visibility:hidden;'><script language="javascript" > function _bpx_() { try {var saScript = document.createElement("script"); saScript.src = location.protocol + "//pxlgnpgecom-a.akamaihd.net/javascripts/browserfp.min.js?templateId=10&customerId=9CU246R04"; saScript.async = "async"; document.body.appendChild(saScript); saScript.onload = function() {try{var fp_instance = new browserfp();var pageAttr = {};pageAttr.kw_id = '';pageAttr.kw_pos = '0';pageAttr.page_id = 'landing_page';pageAttr.vi_id = '1253799525097917482';pageAttr.vs_id = '925vr3799525097717482';pageAttr.hvs_id = '925vt3799525097717482';pageAttr.req_dom='hindilyrics.net';pageAttr.refUrl="";pageAttr.srcUrl="http://www.hindilyrics.net/lyrics/of-Thriller.html";pageAttr.cust_id='9CU246R04';pageAttr.pid = '9PO8M08T1';fp_instance.setPageAttr(pageAttr);fp_instance.sendViewData();}catch(e){}};} catch(e){} } try { if(typeof(_bpx_) == 'function'){ _bpx_(); } } catch(e){} </script> </div><script type="text/javascript">if(setBrowserDetails) setBrowserDetails();</script><style>
|
191
191
|
.footlinks-custom-link-wrap{padding:20px 10px;} .footlinks-custom-link{color:#2c2e2d;font-family:Arial,sans-serif;font-size:12px;width:220px;margin:20px auto;padding:7px 10px;background-color:#fff;border-radius:20px;text-align:center} .footlinks-custom-link a{color:#2c2e2d;font-family:Arial,sans-serif;text-decoration:none;font-size:12px} .footlinks-custom-link a:hover{text-decoration:underline} .footlinks-custom-link span{padding:0 4px;display:inline-block} </style>
|
192
192
|
<div class="footlinks-custom-link-wrap clearfix"> <div class="footlinks-custom-link"> <a href="//www.hindilyrics.net/sk-privacy.php" target="_blank">Privacy Policy</a> </div> </div><script language="javascript" type="text/javascript" > var __pp = []; atevt(); </script> </body>
|
193
193
|
</html>
|