lyrics-ebook 0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. data/LICENSE +340 -0
  2. data/README +46 -0
  3. data/bin/lyrics-ebook +47 -0
  4. data/lib/eeepub/LICENSE +20 -0
  5. data/lib/eeepub/README.md +77 -0
  6. data/lib/eeepub/Rakefile +49 -0
  7. data/lib/eeepub/VERSION +1 -0
  8. data/lib/eeepub/examples/files/bar.html +42 -0
  9. data/lib/eeepub/examples/files/foo.html +42 -0
  10. data/lib/eeepub/examples/simple_epub.rb +25 -0
  11. data/lib/eeepub/lib/eeepub.rb +17 -0
  12. data/lib/eeepub/lib/eeepub/container_item.rb +108 -0
  13. data/lib/eeepub/lib/eeepub/easy.rb +100 -0
  14. data/lib/eeepub/lib/eeepub/maker.rb +127 -0
  15. data/lib/eeepub/lib/eeepub/ncx.rb +68 -0
  16. data/lib/eeepub/lib/eeepub/ocf.rb +112 -0
  17. data/lib/eeepub/lib/eeepub/opf.rb +148 -0
  18. data/lib/eeepub/spec/eeepub/easy_spec.rb +66 -0
  19. data/lib/eeepub/spec/eeepub/maker_spec.rb +124 -0
  20. data/lib/eeepub/spec/eeepub/ncx_spec.rb +80 -0
  21. data/lib/eeepub/spec/eeepub/ocf_spec.rb +43 -0
  22. data/lib/eeepub/spec/eeepub/opf_spec.rb +262 -0
  23. data/lib/eeepub/spec/eeepub_spec.rb +4 -0
  24. data/lib/eeepub/spec/spec_helper.rb +12 -0
  25. data/lib/lyrics_ebook.rb +71 -0
  26. data/lib/lyrics_ebook/cache2html.rb +33 -0
  27. data/lib/lyrics_ebook/cache_manager.rb +77 -0
  28. data/lib/lyrics_ebook/lyric.rb +32 -0
  29. data/lib/lyrics_ebook/lyric_download.rb +50 -0
  30. data/lib/lyrics_ebook/lyrics2html.rb +106 -0
  31. data/lib/lyrics_ebook/mini_lyrics_parser.rb +26 -0
  32. data/lib/lyrics_ebook/mp3_parser.rb +37 -0
  33. data/lib/wiki_lyrics/amarok/COPYING +340 -0
  34. data/lib/wiki_lyrics/amarok/README +51 -0
  35. data/lib/wiki_lyrics/amarok/amarok.rb +355 -0
  36. data/lib/wiki_lyrics/amarok/pluginadapter.rb +113 -0
  37. data/lib/wiki_lyrics/amarok/plugins.rb +95 -0
  38. data/lib/wiki_lyrics/amarok/wikilyrics.rb +578 -0
  39. data/lib/wiki_lyrics/amarok/wikilyrics.spec +4 -0
  40. data/lib/wiki_lyrics/amarok/wikipluginadapter.rb +392 -0
  41. data/lib/wiki_lyrics/cli/optionsparser.rb +228 -0
  42. data/lib/wiki_lyrics/cli/pluginadapter.rb +56 -0
  43. data/lib/wiki_lyrics/cli/plugins.rb +79 -0
  44. data/lib/wiki_lyrics/cli/wikilyrics.rb +178 -0
  45. data/lib/wiki_lyrics/cli/wikipluginadapter.rb +140 -0
  46. data/lib/wiki_lyrics/docs/COPYING +340 -0
  47. data/lib/wiki_lyrics/docs/ChangeLog +293 -0
  48. data/lib/wiki_lyrics/docs/HOWTO.pdf +0 -0
  49. data/lib/wiki_lyrics/docs/HOWTO.tex +151 -0
  50. data/lib/wiki_lyrics/docs/HOWTO.txt +139 -0
  51. data/lib/wiki_lyrics/docs/README +45 -0
  52. data/lib/wiki_lyrics/docs/TODO +12 -0
  53. data/lib/wiki_lyrics/gui/gui-gtk.rb +945 -0
  54. data/lib/wiki_lyrics/gui/gui-qt3.rb +785 -0
  55. data/lib/wiki_lyrics/gui/gui-qt4.rb +845 -0
  56. data/lib/wiki_lyrics/gui/gui-tk.rb +1104 -0
  57. data/lib/wiki_lyrics/gui/gui.rb +268 -0
  58. data/lib/wiki_lyrics/gui/test.rb +74 -0
  59. data/lib/wiki_lyrics/i18n/README +1 -0
  60. data/lib/wiki_lyrics/i18n/en.rb +181 -0
  61. data/lib/wiki_lyrics/i18n/es.rb +181 -0
  62. data/lib/wiki_lyrics/i18n/i18n.rb +126 -0
  63. data/lib/wiki_lyrics/i18n/sk.rb +174 -0
  64. data/lib/wiki_lyrics/itrans/COPYRIGHT +31 -0
  65. data/lib/wiki_lyrics/itrans/itrans +0 -0
  66. data/lib/wiki_lyrics/itrans/itrans.txt +8 -0
  67. data/lib/wiki_lyrics/itrans/lyric.txt +23 -0
  68. data/lib/wiki_lyrics/itrans/udvng.ifm +206 -0
  69. data/lib/wiki_lyrics/lyrics.rb +567 -0
  70. data/lib/wiki_lyrics/lyrics_AZLyrics.rb +113 -0
  71. data/lib/wiki_lyrics/lyrics_DarkLyrics.rb +124 -0
  72. data/lib/wiki_lyrics/lyrics_Giitaayan.rb +124 -0
  73. data/lib/wiki_lyrics/lyrics_Jamendo.rb +166 -0
  74. data/lib/wiki_lyrics/lyrics_LeosLyrics.rb +142 -0
  75. data/lib/wiki_lyrics/lyrics_LoudSongs.rb +135 -0
  76. data/lib/wiki_lyrics/lyrics_LyricWiki.rb +329 -0
  77. data/lib/wiki_lyrics/lyrics_LyricsDownload.rb +118 -0
  78. data/lib/wiki_lyrics/lyrics_LyricsMania.rb +141 -0
  79. data/lib/wiki_lyrics/lyrics_Lyriki.rb +287 -0
  80. data/lib/wiki_lyrics/lyrics_SeekLyrics.rb +108 -0
  81. data/lib/wiki_lyrics/lyrics_Sing365.rb +103 -0
  82. data/lib/wiki_lyrics/lyrics_TerraLetras.rb +126 -0
  83. data/lib/wiki_lyrics/mediawikilyrics.rb +1464 -0
  84. data/lib/wiki_lyrics/tests/plugin_tests.rb +161 -0
  85. data/lib/wiki_lyrics/tests/tests.rb +74 -0
  86. data/lib/wiki_lyrics/utils/formdata.rb +56 -0
  87. data/lib/wiki_lyrics/utils/htmlentities.rb +291 -0
  88. data/lib/wiki_lyrics/utils/http.rb +198 -0
  89. data/lib/wiki_lyrics/utils/itrans.rb +160 -0
  90. data/lib/wiki_lyrics/utils/kde.rb +88 -0
  91. data/lib/wiki_lyrics/utils/logger.rb +123 -0
  92. data/lib/wiki_lyrics/utils/strings.rb +378 -0
  93. data/lib/wiki_lyrics/utils/xmlhash.rb +111 -0
  94. data/lib/wiki_lyrics/wikilyrics.kdevelop +152 -0
  95. data/lib/wiki_lyrics/wikilyrics.kdevses +18 -0
  96. data/lib/wiki_lyrics/win/gtk_fix.bat +3 -0
  97. data/lib/wiki_lyrics/win/tk_fix.bat +3 -0
  98. data/lib/wiki_lyrics/win/wikilyrics.bat +4 -0
  99. data/lib/wiki_lyrics/win/win_fix.rb +52 -0
  100. data/templates/art_.erb.xhtml +29 -0
  101. data/templates/artists.erb.xhtml +19 -0
  102. data/templates/cover.erb.xhtml +22 -0
  103. data/test/cache_manager_test.rb +73 -0
  104. data/test/data/artist name/title name.lyric +6 -0
  105. data/test/lyric_test.rb +41 -0
  106. 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,3 @@
1
+ @echo off
2
+ ruby.exe win_fix.rb "gtk"
3
+ pause
@@ -0,0 +1,3 @@
1
+ @echo off
2
+ ruby.exe win_fix.rb tk
3
+ pause
@@ -0,0 +1,4 @@
1
+ @echo off
2
+ rem AMIP has troubles launching ruby directly.
3
+ rem Using a batch file to call wikilyrics solves this.
4
+ ruby.exe wikilyrics.rb %* 2>NUL
@@ -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
@@ -0,0 +1,6 @@
1
+ Artist name - Title name
2
+
3
+ Song line1
4
+ Song line2
5
+
6
+ Song end
@@ -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
+