lyrics-ebook 0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +340 -0
- data/README +46 -0
- data/bin/lyrics-ebook +47 -0
- data/lib/eeepub/LICENSE +20 -0
- data/lib/eeepub/README.md +77 -0
- data/lib/eeepub/Rakefile +49 -0
- data/lib/eeepub/VERSION +1 -0
- data/lib/eeepub/examples/files/bar.html +42 -0
- data/lib/eeepub/examples/files/foo.html +42 -0
- data/lib/eeepub/examples/simple_epub.rb +25 -0
- data/lib/eeepub/lib/eeepub.rb +17 -0
- data/lib/eeepub/lib/eeepub/container_item.rb +108 -0
- data/lib/eeepub/lib/eeepub/easy.rb +100 -0
- data/lib/eeepub/lib/eeepub/maker.rb +127 -0
- data/lib/eeepub/lib/eeepub/ncx.rb +68 -0
- data/lib/eeepub/lib/eeepub/ocf.rb +112 -0
- data/lib/eeepub/lib/eeepub/opf.rb +148 -0
- data/lib/eeepub/spec/eeepub/easy_spec.rb +66 -0
- data/lib/eeepub/spec/eeepub/maker_spec.rb +124 -0
- data/lib/eeepub/spec/eeepub/ncx_spec.rb +80 -0
- data/lib/eeepub/spec/eeepub/ocf_spec.rb +43 -0
- data/lib/eeepub/spec/eeepub/opf_spec.rb +262 -0
- data/lib/eeepub/spec/eeepub_spec.rb +4 -0
- data/lib/eeepub/spec/spec_helper.rb +12 -0
- data/lib/lyrics_ebook.rb +71 -0
- data/lib/lyrics_ebook/cache2html.rb +33 -0
- data/lib/lyrics_ebook/cache_manager.rb +77 -0
- data/lib/lyrics_ebook/lyric.rb +32 -0
- data/lib/lyrics_ebook/lyric_download.rb +50 -0
- data/lib/lyrics_ebook/lyrics2html.rb +106 -0
- data/lib/lyrics_ebook/mini_lyrics_parser.rb +26 -0
- data/lib/lyrics_ebook/mp3_parser.rb +37 -0
- data/lib/wiki_lyrics/amarok/COPYING +340 -0
- data/lib/wiki_lyrics/amarok/README +51 -0
- data/lib/wiki_lyrics/amarok/amarok.rb +355 -0
- data/lib/wiki_lyrics/amarok/pluginadapter.rb +113 -0
- data/lib/wiki_lyrics/amarok/plugins.rb +95 -0
- data/lib/wiki_lyrics/amarok/wikilyrics.rb +578 -0
- data/lib/wiki_lyrics/amarok/wikilyrics.spec +4 -0
- data/lib/wiki_lyrics/amarok/wikipluginadapter.rb +392 -0
- data/lib/wiki_lyrics/cli/optionsparser.rb +228 -0
- data/lib/wiki_lyrics/cli/pluginadapter.rb +56 -0
- data/lib/wiki_lyrics/cli/plugins.rb +79 -0
- data/lib/wiki_lyrics/cli/wikilyrics.rb +178 -0
- data/lib/wiki_lyrics/cli/wikipluginadapter.rb +140 -0
- data/lib/wiki_lyrics/docs/COPYING +340 -0
- data/lib/wiki_lyrics/docs/ChangeLog +293 -0
- data/lib/wiki_lyrics/docs/HOWTO.pdf +0 -0
- data/lib/wiki_lyrics/docs/HOWTO.tex +151 -0
- data/lib/wiki_lyrics/docs/HOWTO.txt +139 -0
- data/lib/wiki_lyrics/docs/README +45 -0
- data/lib/wiki_lyrics/docs/TODO +12 -0
- data/lib/wiki_lyrics/gui/gui-gtk.rb +945 -0
- data/lib/wiki_lyrics/gui/gui-qt3.rb +785 -0
- data/lib/wiki_lyrics/gui/gui-qt4.rb +845 -0
- data/lib/wiki_lyrics/gui/gui-tk.rb +1104 -0
- data/lib/wiki_lyrics/gui/gui.rb +268 -0
- data/lib/wiki_lyrics/gui/test.rb +74 -0
- data/lib/wiki_lyrics/i18n/README +1 -0
- data/lib/wiki_lyrics/i18n/en.rb +181 -0
- data/lib/wiki_lyrics/i18n/es.rb +181 -0
- data/lib/wiki_lyrics/i18n/i18n.rb +126 -0
- data/lib/wiki_lyrics/i18n/sk.rb +174 -0
- data/lib/wiki_lyrics/itrans/COPYRIGHT +31 -0
- data/lib/wiki_lyrics/itrans/itrans +0 -0
- data/lib/wiki_lyrics/itrans/itrans.txt +8 -0
- data/lib/wiki_lyrics/itrans/lyric.txt +23 -0
- data/lib/wiki_lyrics/itrans/udvng.ifm +206 -0
- data/lib/wiki_lyrics/lyrics.rb +567 -0
- data/lib/wiki_lyrics/lyrics_AZLyrics.rb +113 -0
- data/lib/wiki_lyrics/lyrics_DarkLyrics.rb +124 -0
- data/lib/wiki_lyrics/lyrics_Giitaayan.rb +124 -0
- data/lib/wiki_lyrics/lyrics_Jamendo.rb +166 -0
- data/lib/wiki_lyrics/lyrics_LeosLyrics.rb +142 -0
- data/lib/wiki_lyrics/lyrics_LoudSongs.rb +135 -0
- data/lib/wiki_lyrics/lyrics_LyricWiki.rb +329 -0
- data/lib/wiki_lyrics/lyrics_LyricsDownload.rb +118 -0
- data/lib/wiki_lyrics/lyrics_LyricsMania.rb +141 -0
- data/lib/wiki_lyrics/lyrics_Lyriki.rb +287 -0
- data/lib/wiki_lyrics/lyrics_SeekLyrics.rb +108 -0
- data/lib/wiki_lyrics/lyrics_Sing365.rb +103 -0
- data/lib/wiki_lyrics/lyrics_TerraLetras.rb +126 -0
- data/lib/wiki_lyrics/mediawikilyrics.rb +1464 -0
- data/lib/wiki_lyrics/tests/plugin_tests.rb +161 -0
- data/lib/wiki_lyrics/tests/tests.rb +74 -0
- data/lib/wiki_lyrics/utils/formdata.rb +56 -0
- data/lib/wiki_lyrics/utils/htmlentities.rb +291 -0
- data/lib/wiki_lyrics/utils/http.rb +198 -0
- data/lib/wiki_lyrics/utils/itrans.rb +160 -0
- data/lib/wiki_lyrics/utils/kde.rb +88 -0
- data/lib/wiki_lyrics/utils/logger.rb +123 -0
- data/lib/wiki_lyrics/utils/strings.rb +378 -0
- data/lib/wiki_lyrics/utils/xmlhash.rb +111 -0
- data/lib/wiki_lyrics/wikilyrics.kdevelop +152 -0
- data/lib/wiki_lyrics/wikilyrics.kdevses +18 -0
- data/lib/wiki_lyrics/win/gtk_fix.bat +3 -0
- data/lib/wiki_lyrics/win/tk_fix.bat +3 -0
- data/lib/wiki_lyrics/win/wikilyrics.bat +4 -0
- data/lib/wiki_lyrics/win/win_fix.rb +52 -0
- data/templates/art_.erb.xhtml +29 -0
- data/templates/artists.erb.xhtml +19 -0
- data/templates/cover.erb.xhtml +22 -0
- data/test/cache_manager_test.rb +73 -0
- data/test/data/artist name/title name.lyric +6 -0
- data/test/lyric_test.rb +41 -0
- metadata +194 -0
@@ -0,0 +1,152 @@
|
|
1
|
+
<?xml version = '1.0'?>
|
2
|
+
<kdevelop>
|
3
|
+
<general>
|
4
|
+
<author>Sergio Pistone</author>
|
5
|
+
<email>sergio_pistone@yahoo.com.ar</email>
|
6
|
+
<version>0.1</version>
|
7
|
+
<projectmanagement>KDevScriptProject</projectmanagement>
|
8
|
+
<primarylanguage>Ruby</primarylanguage>
|
9
|
+
<keywords>
|
10
|
+
<keyword>Ruby</keyword>
|
11
|
+
</keywords>
|
12
|
+
<ignoreparts>
|
13
|
+
<part>kdevbookmarks</part>
|
14
|
+
<part>kdevkonsoleview</part>
|
15
|
+
<part>kdevfilelist</part>
|
16
|
+
<part>kdevfileselector</part>
|
17
|
+
<part>kdevfileview</part>
|
18
|
+
</ignoreparts>
|
19
|
+
<projectdirectory>.</projectdirectory>
|
20
|
+
<absoluteprojectpath>false</absoluteprojectpath>
|
21
|
+
<description/>
|
22
|
+
<versioncontrol>kdevsubversion</versioncontrol>
|
23
|
+
<projectname>wikilyrics</projectname>
|
24
|
+
<defaultencoding/>
|
25
|
+
</general>
|
26
|
+
<kdevscriptproject>
|
27
|
+
<general>
|
28
|
+
<activedir>src</activedir>
|
29
|
+
<includepatterns>*.rb</includepatterns>
|
30
|
+
<excludepatterns>*~</excludepatterns>
|
31
|
+
</general>
|
32
|
+
<run>
|
33
|
+
<directoryradio>executable</directoryradio>
|
34
|
+
<globalcwd/>
|
35
|
+
</run>
|
36
|
+
</kdevscriptproject>
|
37
|
+
<kdevfileview>
|
38
|
+
<groups>
|
39
|
+
<group pattern="tests/*" name="tests" />
|
40
|
+
<group pattern="i18n/*" name="i18n" />
|
41
|
+
<group pattern="cli/*;cli2/*" name="cli" />
|
42
|
+
<group pattern="docs/*" name="docs" />
|
43
|
+
<group pattern="lyrics*.rb;mediawikilyrics.rb" name="lyrics" />
|
44
|
+
<group pattern="amarok/*" name="amarok" />
|
45
|
+
<group pattern="gui/*" name="gui" />
|
46
|
+
<group pattern="*.rb" name="other" />
|
47
|
+
<hidenonprojectfiles>false</hidenonprojectfiles>
|
48
|
+
<hidenonlocation>true</hidenonlocation>
|
49
|
+
</groups>
|
50
|
+
<tree>
|
51
|
+
<hidepatterns>*.o,*.lo,CVS</hidepatterns>
|
52
|
+
<hidenonprojectfiles>false</hidenonprojectfiles>
|
53
|
+
</tree>
|
54
|
+
</kdevfileview>
|
55
|
+
<kdevdoctreeview>
|
56
|
+
<ignoretocs>
|
57
|
+
<toc>ada</toc>
|
58
|
+
<toc>ada_bugs_gcc</toc>
|
59
|
+
<toc>bash</toc>
|
60
|
+
<toc>bash_bugs</toc>
|
61
|
+
<toc>c++_bugs_gcc</toc>
|
62
|
+
<toc>clanlib</toc>
|
63
|
+
<toc>w3c-dom-level2-html</toc>
|
64
|
+
<toc>fortran_bugs_gcc</toc>
|
65
|
+
<toc>gnome1</toc>
|
66
|
+
<toc>gnustep</toc>
|
67
|
+
<toc>gtk</toc>
|
68
|
+
<toc>gtk_bugs</toc>
|
69
|
+
<toc>haskell</toc>
|
70
|
+
<toc>haskell_bugs_ghc</toc>
|
71
|
+
<toc>java_bugs_gcc</toc>
|
72
|
+
<toc>java_bugs_sun</toc>
|
73
|
+
<toc>kde2book</toc>
|
74
|
+
<toc>libc</toc>
|
75
|
+
<toc>libstdc++</toc>
|
76
|
+
<toc>opengl</toc>
|
77
|
+
<toc>pascal_bugs_fp</toc>
|
78
|
+
<toc>php</toc>
|
79
|
+
<toc>php_bugs</toc>
|
80
|
+
<toc>perl</toc>
|
81
|
+
<toc>perl_bugs</toc>
|
82
|
+
<toc>python</toc>
|
83
|
+
<toc>python_bugs</toc>
|
84
|
+
<toc>qt-kdev3</toc>
|
85
|
+
<toc>sdl</toc>
|
86
|
+
<toc>stl</toc>
|
87
|
+
<toc>w3c-svg</toc>
|
88
|
+
<toc>sw</toc>
|
89
|
+
<toc>w3c-uaag10</toc>
|
90
|
+
<toc>wxwidgets_bugs</toc>
|
91
|
+
</ignoretocs>
|
92
|
+
<ignoreqt_xml>
|
93
|
+
<toc>Guide to the Qt Translation Tools</toc>
|
94
|
+
<toc>Qt Assistant Manual</toc>
|
95
|
+
<toc>Qt Designer Manual</toc>
|
96
|
+
<toc>Qt Reference Documentation</toc>
|
97
|
+
<toc>qmake User Guide</toc>
|
98
|
+
</ignoreqt_xml>
|
99
|
+
<ignoredoxygen>
|
100
|
+
<toc>KDE Libraries (Doxygen)</toc>
|
101
|
+
</ignoredoxygen>
|
102
|
+
</kdevdoctreeview>
|
103
|
+
<kdevfilecreate>
|
104
|
+
<filetypes/>
|
105
|
+
<useglobaltypes>
|
106
|
+
<type ext="rb" />
|
107
|
+
</useglobaltypes>
|
108
|
+
</kdevfilecreate>
|
109
|
+
<kdevrubysupport>
|
110
|
+
<run>
|
111
|
+
<mainprogram/>
|
112
|
+
<interpreter>ruby</interpreter>
|
113
|
+
<terminal>false</terminal>
|
114
|
+
<shell>irb</shell>
|
115
|
+
<programargs/>
|
116
|
+
<runmainprogram>0</runmainprogram>
|
117
|
+
<charactercoding>3</charactercoding>
|
118
|
+
</run>
|
119
|
+
</kdevrubysupport>
|
120
|
+
<substmap>
|
121
|
+
<APPNAME>wikilyrics</APPNAME>
|
122
|
+
<APPNAMELC>wikilyrics</APPNAMELC>
|
123
|
+
<APPNAMESC>Wikilyrics</APPNAMESC>
|
124
|
+
<APPNAMEUC>WIKILYRICS</APPNAMEUC>
|
125
|
+
<AUTHOR>Sergio Pistone</AUTHOR>
|
126
|
+
<EMAIL>sergio_pistone@yahoo.com.ar</EMAIL>
|
127
|
+
<LICENSE>GPL</LICENSE>
|
128
|
+
<LICENSEFILE>COPYING</LICENSEFILE>
|
129
|
+
<VERSION>0.1</VERSION>
|
130
|
+
<YEAR>2006</YEAR>
|
131
|
+
<dest>wikilyrics</dest>
|
132
|
+
</substmap>
|
133
|
+
<kdevrbdebugger>
|
134
|
+
<general>
|
135
|
+
<floatingtoolbar>false</floatingtoolbar>
|
136
|
+
<showconstants>true</showconstants>
|
137
|
+
<traceintoruby>false</traceintoruby>
|
138
|
+
</general>
|
139
|
+
</kdevrbdebugger>
|
140
|
+
<kdevdocumentation>
|
141
|
+
<projectdoc>
|
142
|
+
<docsystem/>
|
143
|
+
<docurl/>
|
144
|
+
<usermanualurl/>
|
145
|
+
</projectdoc>
|
146
|
+
</kdevdocumentation>
|
147
|
+
<ctagspart>
|
148
|
+
<customArguments/>
|
149
|
+
<customTagfilePath>/home/sergio/Desktop/wikilyrics/tags</customTagfilePath>
|
150
|
+
<activeTagsFiles/>
|
151
|
+
</ctagspart>
|
152
|
+
</kdevelop>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<?xml version = '1.0' encoding = 'UTF-8'?>
|
2
|
+
<!DOCTYPE KDevPrjSession>
|
3
|
+
<KDevPrjSession>
|
4
|
+
<DocsAndViews NumberOfDocuments="1" >
|
5
|
+
<Doc0 NumberOfViews="1" URL="file:///home/sergio/Desktop/Desarrollo/wikilyrics/lyrics_YahooMusic.rb" >
|
6
|
+
<View0 Encoding="" line="0" Type="Source" />
|
7
|
+
</Doc0>
|
8
|
+
</DocsAndViews>
|
9
|
+
<pluginList>
|
10
|
+
<kdevrbdebugger>
|
11
|
+
<breakpointList/>
|
12
|
+
<watchExpressions/>
|
13
|
+
</kdevrbdebugger>
|
14
|
+
<kdevsubversion>
|
15
|
+
<subversion base="" />
|
16
|
+
</kdevsubversion>
|
17
|
+
</pluginList>
|
18
|
+
</KDevPrjSession>
|
@@ -0,0 +1,52 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "fileutils"
|
4
|
+
|
5
|
+
def get_ruby_dir()
|
6
|
+
candidate_dirs = [ ENV["PROGRAMFILES"], ENV["SYSTEMDRIVE"], ENV["SYSTEMDRIVE"] ]
|
7
|
+
candidate_dirs.each() do |dir|
|
8
|
+
next if dir == nil
|
9
|
+
dir = "#{dir.gsub( "\\", "/" )}/ruby"
|
10
|
+
return dir if FileTest.exist?( dir )
|
11
|
+
end
|
12
|
+
return nil
|
13
|
+
end
|
14
|
+
|
15
|
+
def get_gtk_dir()
|
16
|
+
return ENV["GTK_BASEPATH"] ? ENV["GTK_BASEPATH"].gsub( "\\", "/" ) : nil
|
17
|
+
end
|
18
|
+
|
19
|
+
toolkit = ARGV[0].to_s().downcase().strip()
|
20
|
+
if toolkit == "gtk" || toolkit == "gtk2"
|
21
|
+
ruby_dir = get_ruby_dir()
|
22
|
+
if ruby_dir == nil
|
23
|
+
puts "Sorry... couldn't find the Ruby installation dir."
|
24
|
+
exit 1
|
25
|
+
end
|
26
|
+
gtk_dir = get_gtk_dir()
|
27
|
+
if gtk_dir == nil
|
28
|
+
puts "Sorry... couldn't find the GTK installation dir."
|
29
|
+
exit 1
|
30
|
+
end
|
31
|
+
begin
|
32
|
+
puts "Applying Ruby/GTK fix:"
|
33
|
+
$stdout << " - Backing up '#{ruby_dir}/bin/iconv.dll' to '#{ruby_dir}/bin/iconv.dll.old'..."
|
34
|
+
FileUtils.move( "#{ruby_dir}/bin/iconv.dll", "#{ruby_dir}/bin/iconv.dll.old" )
|
35
|
+
puts " OK"
|
36
|
+
$stdout << " - Copying '#{gtk_dir}/bin/iconv' to '#{ruby_dir}/bin/iconv.dll'..."
|
37
|
+
FileUtils.copy( "#{gtk_dir}/bin/iconv.dll", "#{ruby_dir}/bin/iconv.dll" )
|
38
|
+
puts " OK"
|
39
|
+
puts "GTK fix applied successfully."
|
40
|
+
rescue Errno::ENOENT
|
41
|
+
puts " ERROR"
|
42
|
+
puts "There was an error applying the GTK fix."
|
43
|
+
exit 1
|
44
|
+
end
|
45
|
+
elsif toolkit == "tk"
|
46
|
+
puts "Sorry... not implemented yet."
|
47
|
+
exit 1
|
48
|
+
else
|
49
|
+
puts "Usage: win_fix.rb {gtk|tk}"
|
50
|
+
puts "Fix common problems with Ruby/GTK or Tcl/Tk Windows installations."
|
51
|
+
exit 1
|
52
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" ?>
|
2
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
|
6
|
+
<title>Lyrics-EBook</title>
|
7
|
+
<!-- <link rel="stylesheet" href="css/main.css" type="text/css" /> -->
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
<br />
|
11
|
+
<h2><%=h(@art_name)%></h2>
|
12
|
+
<ul>
|
13
|
+
<% @lyrics.each_with_index do |lyric, index_song| %>
|
14
|
+
<li><a href='#song_<%=index_song%>'><%=h(lyric.title)%></a></li>
|
15
|
+
<% end %>
|
16
|
+
</ul>
|
17
|
+
<% @lyrics.each_with_index do |lyric, index_song| %>
|
18
|
+
<p>
|
19
|
+
<a name='song_<%=index_song%>'>
|
20
|
+
<h3><%=h(lyric.title)%></h3>
|
21
|
+
</a>
|
22
|
+
<%= lyric.html_text %>
|
23
|
+
<br />
|
24
|
+
<br />
|
25
|
+
</p>
|
26
|
+
<% end %>
|
27
|
+
|
28
|
+
</body>
|
29
|
+
</html>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" ?>
|
2
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
|
6
|
+
<title>Artists</title>
|
7
|
+
<!-- <link rel="stylesheet" href="css/main.css" type="text/css" /> -->
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
<h1>Artists</h1>
|
11
|
+
|
12
|
+
<ul>
|
13
|
+
<% @data.each_with_index do |art_lyrics,index| %>
|
14
|
+
<li><a href="art_<%= index %>.xhtml"><%=h(art_lyrics[0])%></a> (<%=art_lyrics[1].size%> songs)</li>
|
15
|
+
<% end %>
|
16
|
+
</ul>
|
17
|
+
|
18
|
+
</body>
|
19
|
+
</html>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" ?>
|
2
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
|
6
|
+
<title>Lyrics-EBook</title>
|
7
|
+
<!-- <link rel="stylesheet" href="css/main.css" type="text/css" /> -->
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
<h1>Lyrics EBook</h1>
|
11
|
+
<br />
|
12
|
+
<p>
|
13
|
+
Ebook created by lyrics-ebook <br />
|
14
|
+
(<a href="http://code.google.com/p/lyrics-ebook/">http://code.google.com/p/lyrics-ebook</a>)
|
15
|
+
<br />
|
16
|
+
</p>
|
17
|
+
<p>
|
18
|
+
For personal use only.
|
19
|
+
</p>
|
20
|
+
|
21
|
+
</body>
|
22
|
+
</html>
|
@@ -0,0 +1,73 @@
|
|
1
|
+
$LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../lib"
|
2
|
+
|
3
|
+
require 'test/unit'
|
4
|
+
require 'lyrics_ebook.rb'
|
5
|
+
|
6
|
+
class CacheManagerTest < Test::Unit::TestCase
|
7
|
+
|
8
|
+
def setup
|
9
|
+
td=File.join('test','data')
|
10
|
+
@cm=CacheManager.new(td)
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_lyric2file
|
14
|
+
l=Lyric.new({:artist=>'Artist name', :title=>'Title name'})
|
15
|
+
expected=File.join('test','data','artist name','title name.lyric')
|
16
|
+
assert_equal expected, @cm.send('lyric2file',l)
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_lyric2file_with_invalid_chars
|
20
|
+
l=Lyric.new({:artist=>'Artist*name', :title=>'Title/name'})
|
21
|
+
expected=File.join('test','data','artist_name','title_name.lyric')
|
22
|
+
assert_equal expected, @cm.send('lyric2file',l)
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_get_existing
|
26
|
+
l=Lyric.new({:artist=>'Artist name', :title=>'Title name'})
|
27
|
+
assert @cm.get(l)
|
28
|
+
assert_not_nil l.text
|
29
|
+
exp="Song line1\nSong line2\n\nSong end\n"
|
30
|
+
assert_equal exp, l.text
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_get_missing
|
34
|
+
l=Lyric.new({:artist=>'Artist name', :title=>'not existing'})
|
35
|
+
assert !@cm.get(l)
|
36
|
+
assert_nil l.text
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_store
|
40
|
+
l=Lyric.new({:artist=>'Artist name', :title=>'New song'})
|
41
|
+
begin
|
42
|
+
assert !@cm.get(l), "precondition"
|
43
|
+
l.text="prova"
|
44
|
+
assert @cm.store(l)
|
45
|
+
|
46
|
+
l2=Lyric.new({:artist=>'Artist name', :title=>'New song'})
|
47
|
+
assert @cm.get(l2)
|
48
|
+
exp="prova"
|
49
|
+
assert_equal exp, l2.text
|
50
|
+
ensure
|
51
|
+
f_name=@cm.send('lyric2file',l)
|
52
|
+
File.delete(f_name)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_get_lyrics
|
57
|
+
lyrics=@cm.get_lyrics
|
58
|
+
assert lyrics.is_a? Array
|
59
|
+
lyric=lyrics.detect{|l| l.artist=="Artist name" && l.title=='Title name'}
|
60
|
+
assert_not_nil lyric
|
61
|
+
assert_not_nil lyric.text
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_alternative_dir
|
65
|
+
td=File.join('test','data')
|
66
|
+
@cm=CacheManager.new(".")
|
67
|
+
l=Lyric.new({:artist=>'Artist name', :title=>'Title name'})
|
68
|
+
assert !@cm.get(l)
|
69
|
+
@cm.alternative_dir= td
|
70
|
+
assert @cm.get(l)
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
data/test/lyric_test.rb
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
$LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../lib"
|
2
|
+
|
3
|
+
require 'test/unit'
|
4
|
+
require 'lyrics_ebook.rb'
|
5
|
+
|
6
|
+
class LyricTest < Test::Unit::TestCase
|
7
|
+
|
8
|
+
def test_init
|
9
|
+
l=Lyric.new({:artist=>'a', :title=>'b'})
|
10
|
+
assert_equal 'a', l.artist
|
11
|
+
assert_equal 'b', l.title
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_sort
|
15
|
+
l1=Lyric.new
|
16
|
+
l1.artist='a1'
|
17
|
+
l1.title='ccc'
|
18
|
+
l2=Lyric.new
|
19
|
+
l2.artist='a1'
|
20
|
+
l2.title='bbb'
|
21
|
+
a=[l1,l1]
|
22
|
+
a.sort!
|
23
|
+
|
24
|
+
assert l1, a[0]
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_text
|
28
|
+
l=Lyric.new({:artist=>'a', :title=>'b'})
|
29
|
+
a=[]
|
30
|
+
a << "line1\n"
|
31
|
+
a << "line2\n"
|
32
|
+
a << "line3\n"
|
33
|
+
l.text = a
|
34
|
+
exp="line1\nline2\nline3\n"
|
35
|
+
assert_equal exp, l.text
|
36
|
+
|
37
|
+
exp="line1\n<br />line2\n<br />line3\n"
|
38
|
+
assert_equal exp, l.html_text
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
metadata
ADDED
@@ -0,0 +1,194 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: lyrics-ebook
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 1
|
8
|
+
version: "0.1"
|
9
|
+
platform: ruby
|
10
|
+
authors:
|
11
|
+
- maner
|
12
|
+
autorequire:
|
13
|
+
bindir: bin
|
14
|
+
cert_chain: []
|
15
|
+
|
16
|
+
date: 2010-11-03 00:00:00 +01:00
|
17
|
+
default_executable:
|
18
|
+
dependencies:
|
19
|
+
- !ruby/object:Gem::Dependency
|
20
|
+
name: ruby-mp3info
|
21
|
+
prerelease: false
|
22
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
segments:
|
27
|
+
- 0
|
28
|
+
- 6
|
29
|
+
- 12
|
30
|
+
version: 0.6.12
|
31
|
+
type: :runtime
|
32
|
+
version_requirements: *id001
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: zippy
|
35
|
+
prerelease: false
|
36
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
segments:
|
41
|
+
- 0
|
42
|
+
- 1
|
43
|
+
- 0
|
44
|
+
version: 0.1.0
|
45
|
+
type: :runtime
|
46
|
+
version_requirements: *id002
|
47
|
+
description: Build ebooks (in epub format) containing song lyrics
|
48
|
+
email: maner@users.sf.net
|
49
|
+
executables:
|
50
|
+
- lyrics-ebook
|
51
|
+
extensions: []
|
52
|
+
|
53
|
+
extra_rdoc_files:
|
54
|
+
- README
|
55
|
+
- LICENSE
|
56
|
+
files:
|
57
|
+
- README
|
58
|
+
- LICENSE
|
59
|
+
- lib/lyrics_ebook/lyrics2html.rb
|
60
|
+
- lib/lyrics_ebook/cache_manager.rb
|
61
|
+
- lib/lyrics_ebook/cache2html.rb
|
62
|
+
- lib/lyrics_ebook/lyric_download.rb
|
63
|
+
- lib/lyrics_ebook/lyric.rb
|
64
|
+
- lib/lyrics_ebook/mini_lyrics_parser.rb
|
65
|
+
- lib/lyrics_ebook/mp3_parser.rb
|
66
|
+
- lib/eeepub/lib/eeepub.rb
|
67
|
+
- lib/eeepub/lib/eeepub/easy.rb
|
68
|
+
- lib/eeepub/lib/eeepub/maker.rb
|
69
|
+
- lib/eeepub/lib/eeepub/ncx.rb
|
70
|
+
- lib/eeepub/lib/eeepub/ocf.rb
|
71
|
+
- lib/eeepub/lib/eeepub/opf.rb
|
72
|
+
- lib/eeepub/lib/eeepub/container_item.rb
|
73
|
+
- lib/eeepub/spec/spec_helper.rb
|
74
|
+
- lib/eeepub/spec/eeepub/easy_spec.rb
|
75
|
+
- lib/eeepub/spec/eeepub/ocf_spec.rb
|
76
|
+
- lib/eeepub/spec/eeepub/opf_spec.rb
|
77
|
+
- lib/eeepub/spec/eeepub/ncx_spec.rb
|
78
|
+
- lib/eeepub/spec/eeepub/maker_spec.rb
|
79
|
+
- lib/eeepub/spec/eeepub_spec.rb
|
80
|
+
- lib/eeepub/LICENSE
|
81
|
+
- lib/eeepub/README.md
|
82
|
+
- lib/eeepub/Rakefile
|
83
|
+
- lib/eeepub/VERSION
|
84
|
+
- lib/eeepub/examples/files/foo.html
|
85
|
+
- lib/eeepub/examples/files/bar.html
|
86
|
+
- lib/eeepub/examples/simple_epub.rb
|
87
|
+
- lib/wiki_lyrics/cli/optionsparser.rb
|
88
|
+
- lib/wiki_lyrics/cli/wikilyrics.rb
|
89
|
+
- lib/wiki_lyrics/cli/wikipluginadapter.rb
|
90
|
+
- lib/wiki_lyrics/cli/plugins.rb
|
91
|
+
- lib/wiki_lyrics/cli/pluginadapter.rb
|
92
|
+
- lib/wiki_lyrics/gui/test.rb
|
93
|
+
- lib/wiki_lyrics/gui/gui.rb
|
94
|
+
- lib/wiki_lyrics/gui/gui-gtk.rb
|
95
|
+
- lib/wiki_lyrics/gui/gui-tk.rb
|
96
|
+
- lib/wiki_lyrics/gui/gui-qt3.rb
|
97
|
+
- lib/wiki_lyrics/gui/gui-qt4.rb
|
98
|
+
- lib/wiki_lyrics/win/win_fix.rb
|
99
|
+
- lib/wiki_lyrics/win/wikilyrics.bat
|
100
|
+
- lib/wiki_lyrics/win/tk_fix.bat
|
101
|
+
- lib/wiki_lyrics/win/gtk_fix.bat
|
102
|
+
- lib/wiki_lyrics/i18n/i18n.rb
|
103
|
+
- lib/wiki_lyrics/i18n/en.rb
|
104
|
+
- lib/wiki_lyrics/i18n/es.rb
|
105
|
+
- lib/wiki_lyrics/i18n/sk.rb
|
106
|
+
- lib/wiki_lyrics/i18n/README
|
107
|
+
- lib/wiki_lyrics/docs/TODO
|
108
|
+
- lib/wiki_lyrics/docs/README
|
109
|
+
- lib/wiki_lyrics/docs/HOWTO.pdf
|
110
|
+
- lib/wiki_lyrics/docs/HOWTO.tex
|
111
|
+
- lib/wiki_lyrics/docs/HOWTO.txt
|
112
|
+
- lib/wiki_lyrics/docs/ChangeLog
|
113
|
+
- lib/wiki_lyrics/docs/COPYING
|
114
|
+
- lib/wiki_lyrics/lyrics.rb
|
115
|
+
- lib/wiki_lyrics/lyrics_AZLyrics.rb
|
116
|
+
- lib/wiki_lyrics/lyrics_LoudSongs.rb
|
117
|
+
- lib/wiki_lyrics/tests/plugin_tests.rb
|
118
|
+
- lib/wiki_lyrics/tests/tests.rb
|
119
|
+
- lib/wiki_lyrics/utils/htmlentities.rb
|
120
|
+
- lib/wiki_lyrics/utils/itrans.rb
|
121
|
+
- lib/wiki_lyrics/utils/logger.rb
|
122
|
+
- lib/wiki_lyrics/utils/strings.rb
|
123
|
+
- lib/wiki_lyrics/utils/kde.rb
|
124
|
+
- lib/wiki_lyrics/utils/xmlhash.rb
|
125
|
+
- lib/wiki_lyrics/utils/formdata.rb
|
126
|
+
- lib/wiki_lyrics/utils/http.rb
|
127
|
+
- lib/wiki_lyrics/lyrics_Sing365.rb
|
128
|
+
- lib/wiki_lyrics/lyrics_Jamendo.rb
|
129
|
+
- lib/wiki_lyrics/lyrics_DarkLyrics.rb
|
130
|
+
- lib/wiki_lyrics/wikilyrics.kdevses
|
131
|
+
- lib/wiki_lyrics/mediawikilyrics.rb
|
132
|
+
- lib/wiki_lyrics/amarok/amarok.rb
|
133
|
+
- lib/wiki_lyrics/amarok/README
|
134
|
+
- lib/wiki_lyrics/amarok/wikilyrics.rb
|
135
|
+
- lib/wiki_lyrics/amarok/wikipluginadapter.rb
|
136
|
+
- lib/wiki_lyrics/amarok/plugins.rb
|
137
|
+
- lib/wiki_lyrics/amarok/pluginadapter.rb
|
138
|
+
- lib/wiki_lyrics/amarok/wikilyrics.spec
|
139
|
+
- lib/wiki_lyrics/amarok/COPYING
|
140
|
+
- lib/wiki_lyrics/lyrics_Lyriki.rb
|
141
|
+
- lib/wiki_lyrics/lyrics_LyricWiki.rb
|
142
|
+
- lib/wiki_lyrics/itrans/lyric.txt
|
143
|
+
- lib/wiki_lyrics/itrans/udvng.ifm
|
144
|
+
- lib/wiki_lyrics/itrans/itrans
|
145
|
+
- lib/wiki_lyrics/itrans/itrans.txt
|
146
|
+
- lib/wiki_lyrics/itrans/COPYRIGHT
|
147
|
+
- lib/wiki_lyrics/lyrics_TerraLetras.rb
|
148
|
+
- lib/wiki_lyrics/lyrics_LyricsDownload.rb
|
149
|
+
- lib/wiki_lyrics/wikilyrics.kdevelop
|
150
|
+
- lib/wiki_lyrics/lyrics_LeosLyrics.rb
|
151
|
+
- lib/wiki_lyrics/lyrics_Giitaayan.rb
|
152
|
+
- lib/wiki_lyrics/lyrics_LyricsMania.rb
|
153
|
+
- lib/wiki_lyrics/lyrics_SeekLyrics.rb
|
154
|
+
- lib/lyrics_ebook.rb
|
155
|
+
- templates/artists.erb.xhtml
|
156
|
+
- templates/art_.erb.xhtml
|
157
|
+
- templates/cover.erb.xhtml
|
158
|
+
- bin/lyrics-ebook
|
159
|
+
- test/data/artist name/title name.lyric
|
160
|
+
- test/lyric_test.rb
|
161
|
+
- test/cache_manager_test.rb
|
162
|
+
has_rdoc: true
|
163
|
+
homepage: http://code.google.com/p/lyrics-ebook/
|
164
|
+
licenses: []
|
165
|
+
|
166
|
+
post_install_message:
|
167
|
+
rdoc_options:
|
168
|
+
- --charset=UTF-8
|
169
|
+
- --exclude=lib/wiki_lyrics
|
170
|
+
require_paths:
|
171
|
+
- lib
|
172
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
173
|
+
requirements:
|
174
|
+
- - ">="
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
segments:
|
177
|
+
- 0
|
178
|
+
version: "0"
|
179
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
180
|
+
requirements:
|
181
|
+
- - ">="
|
182
|
+
- !ruby/object:Gem::Version
|
183
|
+
segments:
|
184
|
+
- 0
|
185
|
+
version: "0"
|
186
|
+
requirements: []
|
187
|
+
|
188
|
+
rubyforge_project: cssformbuilder
|
189
|
+
rubygems_version: 1.3.6
|
190
|
+
signing_key:
|
191
|
+
specification_version: 2
|
192
|
+
summary: Lyrics-Ebook
|
193
|
+
test_files: []
|
194
|
+
|