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,268 @@
|
|
1
|
+
# Copyright (C) 2006-2008 by Sergio Pistone
|
2
|
+
# sergio_pistone@yahoo.com.ar
|
3
|
+
#
|
4
|
+
# This program is free software; you can redistribute it and/or modify
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
6
|
+
# the Free Software Foundation; either version 2 of the License, or
|
7
|
+
# (at your option) any later version.
|
8
|
+
#
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
12
|
+
# GNU General Public License for more details.
|
13
|
+
#
|
14
|
+
# You should have received a copy of the GNU General Public License
|
15
|
+
# along with this program; if not, write to the
|
16
|
+
# Free Software Foundation, Inc.,
|
17
|
+
# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
18
|
+
|
19
|
+
require File.expand_path( File.dirname( __FILE__ ) + "/../utils/xmlhash" )
|
20
|
+
require "tempfile"
|
21
|
+
|
22
|
+
module GUI
|
23
|
+
|
24
|
+
@@toolkits = []
|
25
|
+
@@run_out_of_process = false
|
26
|
+
@@running_out_of_process = false
|
27
|
+
|
28
|
+
def GUI.run_out_of_process?()
|
29
|
+
return @@run_out_of_process
|
30
|
+
end
|
31
|
+
|
32
|
+
def GUI.set_run_out_of_process( value )
|
33
|
+
@@run_out_of_process = value
|
34
|
+
end
|
35
|
+
|
36
|
+
def GUI.set_running_out_of_process( value )
|
37
|
+
@@running_out_of_process = value
|
38
|
+
end
|
39
|
+
|
40
|
+
def GUI.set_toolkit_priority( toolkits )
|
41
|
+
toolkits.each() do |toolkit|
|
42
|
+
if @@toolkits.include?( toolkit )
|
43
|
+
# check if the toolkit is already loaded (and change it's priority)
|
44
|
+
@@toolkits.delete( toolkit )
|
45
|
+
@@toolkits.insert( 0, toolkit )
|
46
|
+
return toolkit
|
47
|
+
elsif GUI.load_toolkit( toolkit ) # try to load the toolkit
|
48
|
+
@@toolkits.insert( 0, toolkit )
|
49
|
+
return toolkit
|
50
|
+
end
|
51
|
+
end
|
52
|
+
return GUI.get_current_toolkit()
|
53
|
+
end
|
54
|
+
|
55
|
+
def GUI.load_toolkit( toolkit )
|
56
|
+
toolkit = toolkit.downcase()
|
57
|
+
if toolkit == "qt" || toolkit == "qt4"
|
58
|
+
begin
|
59
|
+
return require( File.expand_path( File.dirname( __FILE__ ) + "/gui-qt4" ) )
|
60
|
+
rescue LoadError => e
|
61
|
+
$stderr << "Error loading Qt4 GUI backend: #{e}\n"
|
62
|
+
end
|
63
|
+
elsif toolkit == "qt3"
|
64
|
+
begin
|
65
|
+
return require( File.expand_path( File.dirname( __FILE__ ) + "/gui-qt3" ) )
|
66
|
+
rescue LoadError => e
|
67
|
+
$stderr << "Error loading Qt3 GUI backend: #{e}\n"
|
68
|
+
end
|
69
|
+
elsif toolkit == "gtk"
|
70
|
+
begin
|
71
|
+
return require( File.expand_path( File.dirname( __FILE__ ) + "/gui-gtk" ) )
|
72
|
+
rescue LoadError => e
|
73
|
+
$stderr << "Error loading GTK GUI backend: #{e}\n"
|
74
|
+
end
|
75
|
+
elsif toolkit == "tk"
|
76
|
+
begin
|
77
|
+
return require( File.expand_path( File.dirname( __FILE__ ) + "/gui-tk" ) )
|
78
|
+
rescue LoadError => e
|
79
|
+
$stderr << "Error loading Tk GUI backend: #{e}\n"
|
80
|
+
end
|
81
|
+
end
|
82
|
+
return false
|
83
|
+
end
|
84
|
+
|
85
|
+
def GUI.get_current_toolkit()
|
86
|
+
return @@toolkits.length > 0 ? @@toolkits[0].downcase() : nil
|
87
|
+
end
|
88
|
+
|
89
|
+
def GUI.create_exchange_file()
|
90
|
+
base_filename = Dir.tmpdir() + "/wikilyrics.gui." + $$.to_s()
|
91
|
+
filename = nil
|
92
|
+
loop do
|
93
|
+
filename = base_filename + "." + rand( 65536 ).to_s()
|
94
|
+
break unless File.exists?( filename )
|
95
|
+
end
|
96
|
+
return File.new( filename, "w+" )
|
97
|
+
end
|
98
|
+
|
99
|
+
def GUI.show_dialog( dialog_name, values )
|
100
|
+
|
101
|
+
if @@run_out_of_process && ! @@running_out_of_process
|
102
|
+
file = GUI.create_exchange_file()
|
103
|
+
begin
|
104
|
+
XMLHash.write( file, values )
|
105
|
+
if ( (ret = system( "ruby", __FILE__, dialog_name, file.path, @@toolkits.join( "," ) )) )
|
106
|
+
values = {}
|
107
|
+
file.rewind()
|
108
|
+
XMLHash.read( file.path, values, false )
|
109
|
+
end
|
110
|
+
return ret ? values : nil
|
111
|
+
ensure
|
112
|
+
file.close()
|
113
|
+
File.delete( file.path )
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
current_toolkit = GUI.get_current_toolkit()
|
118
|
+
|
119
|
+
if current_toolkit == "qt" || current_toolkit == "qt4"
|
120
|
+
app = Qt::Application.new( ARGV )
|
121
|
+
# FIXME: there's currently a weird bug when using Oxygen style:
|
122
|
+
# the first time it's used, it renders and works properly but,
|
123
|
+
# when used again, renders badly and generally also crashes.
|
124
|
+
if ( ! @@running_out_of_process )
|
125
|
+
["plastique", "cleanlooks", "windows", "cde", "motif"].each() do |style|
|
126
|
+
break if app.setStyle( style )
|
127
|
+
end
|
128
|
+
end
|
129
|
+
dialog = eval( "QT4::" + dialog_name + ".new( values )" )
|
130
|
+
dialog.show()
|
131
|
+
app.exec()
|
132
|
+
elsif current_toolkit == "qt3"
|
133
|
+
app = Qt::Application.new( ARGV )
|
134
|
+
dialog = eval( "QT3::" + dialog_name + ".new( values )" )
|
135
|
+
app.setMainWidget( dialog )
|
136
|
+
app.mainWidget.show()
|
137
|
+
app.exec()
|
138
|
+
elsif current_toolkit == "gtk"
|
139
|
+
dialog = eval( "GTK::" + dialog_name + ".new( values )" )
|
140
|
+
dialog.exec()
|
141
|
+
Gtk.main()
|
142
|
+
elsif current_toolkit == "tk"
|
143
|
+
dialog = eval( "TK::" + dialog_name + ".new( values )" )
|
144
|
+
dialog.exec()
|
145
|
+
else
|
146
|
+
return nil
|
147
|
+
end
|
148
|
+
|
149
|
+
if dialog.accepted()
|
150
|
+
return dialog.values()
|
151
|
+
else
|
152
|
+
return nil
|
153
|
+
end
|
154
|
+
|
155
|
+
end
|
156
|
+
|
157
|
+
def GUI.show_plugins_manager_dialog( values )
|
158
|
+
values["script_name"] = "Wiki-Lyrics" if ! values.include?( "script_name" )
|
159
|
+
ret = GUI.show_dialog( "PluginsManagerDialog", values )
|
160
|
+
values.update( ret ) if ret
|
161
|
+
return ret != nil
|
162
|
+
end
|
163
|
+
|
164
|
+
|
165
|
+
def GUI.show_plugins_manager_dialog( values )
|
166
|
+
values["script_name"] = "Wiki-Lyrics" if ! values.include?( "script_name" )
|
167
|
+
ret = GUI.show_dialog( "PluginsManagerDialog", values )
|
168
|
+
values.update( ret ) if ret
|
169
|
+
return ret != nil
|
170
|
+
end
|
171
|
+
|
172
|
+
def GUI.show_wiki_plugin_dialog( values )
|
173
|
+
values["site_name"] = "Wiki-Lyrics" if ! values.include?( "site_name" )
|
174
|
+
ret = GUI.show_dialog( "WikiPluginDialog", values )
|
175
|
+
values.update( ret ) if ret
|
176
|
+
values["submit"] = values["submit"].to_s() == "true"
|
177
|
+
values["review"] = values["review"].to_s() == "true"
|
178
|
+
values["prompt_autogen"] = values["prompt_autogen"].to_s() == "true"
|
179
|
+
values["prompt_no_lyrics"] = values["prompt_no_lyrics"].to_s() == "true"
|
180
|
+
return ret != nil
|
181
|
+
end
|
182
|
+
|
183
|
+
def GUI.show_submit_song_dialog( values )
|
184
|
+
values["year"] = values["year"].to_i()
|
185
|
+
values["site_name"] = "Wiki-Lyrics" if ! values.include?( "site_name" )
|
186
|
+
ret = GUI.show_dialog( "SubmitSongDialog", values )
|
187
|
+
values.update( ret ) if ret
|
188
|
+
if values["instrumental"]
|
189
|
+
values["lyrics"] = nil
|
190
|
+
else
|
191
|
+
values["lyrics"] = values["lyrics"].to_s().strip()
|
192
|
+
end
|
193
|
+
values["reviewed"] = values["reviewed"].to_s() == "true"
|
194
|
+
values["instrumental"] = values["instrumental"].to_s() == "true"
|
195
|
+
return ret != nil
|
196
|
+
end
|
197
|
+
|
198
|
+
def GUI.show_submit_album_dialog( values )
|
199
|
+
values["released"] = values["released"].to_s()
|
200
|
+
values["site_name"] = "Wiki-Lyrics" if ! values.include?( "site_name" )
|
201
|
+
ret = GUI.show_dialog( "SubmitAlbumDialog", values )
|
202
|
+
values.update( ret ) if ret
|
203
|
+
values["reviewed"] = values["reviewed"].to_s() == "true"
|
204
|
+
return ret != nil
|
205
|
+
end
|
206
|
+
|
207
|
+
def GUI.show_upload_cover_dialog( values )
|
208
|
+
values["site_name"] = "Wiki-Lyrics" if ! values.include?( "site_name" )
|
209
|
+
values["year"] = values["year"].to_i()
|
210
|
+
ret = GUI.show_dialog( "UploadCoverDialog", values )
|
211
|
+
values.update( ret ) if ret
|
212
|
+
return ret != nil
|
213
|
+
end
|
214
|
+
|
215
|
+
def GUI.show_wiki_fix_pages_dialog( values )
|
216
|
+
values["title"] = "Pages fixer" if ! values.include?( "title" )
|
217
|
+
GUI.show_dialog( "FixPagesDialog", values )
|
218
|
+
end
|
219
|
+
|
220
|
+
def GUI.show_search_lyrics_dialog( values )
|
221
|
+
values["year"] = values["year"].to_i()
|
222
|
+
ret = GUI.show_dialog( "SearchLyricsDialog", values )
|
223
|
+
values.update( ret ) if ret
|
224
|
+
return ret != nil
|
225
|
+
end
|
226
|
+
|
227
|
+
def GUI.show_lyrics_dialog( values )
|
228
|
+
GUI.show_dialog( "ShowLyricsDialog", values )
|
229
|
+
end
|
230
|
+
|
231
|
+
def GUI.show_message_dialog( message, title=nil )
|
232
|
+
if title
|
233
|
+
system( "kdialog", "--icon", "amarok", "--title", title, "--msgbox","<qt>" + message.gsub( "\n", "<br/>" ) + "</qt>" )
|
234
|
+
else
|
235
|
+
system( "kdialog", "--icon", "amarok", "--msgbox", "<qt>" + message.gsub( "\n", "<br/>" ) + "</qt>" )
|
236
|
+
end
|
237
|
+
end
|
238
|
+
|
239
|
+
def GUI.show_confirmation_dialog( message, title=nil )
|
240
|
+
if title
|
241
|
+
system( "kdialog", "--icon", "amarok", "--title", title, "--yesno", "<qt>" + message.gsub( "\n", "<br/>" ) + "</qt>" )
|
242
|
+
else
|
243
|
+
system( "kdialog", "--icon", "amarok", "--yesno", "<qt>" + message.gsub( "\n", "<br/>" ) + "</qt>" )
|
244
|
+
end
|
245
|
+
return $? == 0
|
246
|
+
end
|
247
|
+
|
248
|
+
end
|
249
|
+
|
250
|
+
if $0 == __FILE__
|
251
|
+
|
252
|
+
dialog_name = ARGV[0]
|
253
|
+
values_file_path = ARGV[1]
|
254
|
+
toolkit_priority = ARGV[2].split( "," )
|
255
|
+
|
256
|
+
GUI.set_running_out_of_process( true ) # would cause infinite recursion if not set
|
257
|
+
GUI.set_toolkit_priority( toolkit_priority )
|
258
|
+
|
259
|
+
values = {}
|
260
|
+
XMLHash.read( values_file_path, values, false )
|
261
|
+
|
262
|
+
ret = GUI.show_dialog( dialog_name, values )
|
263
|
+
|
264
|
+
XMLHash.write( values_file_path, ret ) if ret
|
265
|
+
|
266
|
+
exit( ret ? 0 : 1 )
|
267
|
+
|
268
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
# Copyright (C) 2006-2008 by Sergio Pistone
|
2
|
+
# sergio_pistone@yahoo.com.ar
|
3
|
+
#
|
4
|
+
# This program is free software; you can redistribute it and/or modify
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
6
|
+
# the Free Software Foundation; either version 2 of the License, or
|
7
|
+
# (at your option) any later version.
|
8
|
+
#
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
12
|
+
# GNU General Public License for more details.
|
13
|
+
#
|
14
|
+
# You should have received a copy of the GNU General Public License
|
15
|
+
# along with this program; if not, write to the
|
16
|
+
# Free Software Foundation, Inc.,
|
17
|
+
# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
18
|
+
|
19
|
+
require File.expand_path( File.dirname( __FILE__ ) + "/gui.rb" )
|
20
|
+
|
21
|
+
if $0 == __FILE__
|
22
|
+
|
23
|
+
GUI.set_run_out_of_process( true )
|
24
|
+
|
25
|
+
# NOTE: qt4 can't be loaded along with qt3 or gtk (no idea why...)
|
26
|
+
["qt4"].each() do |toolkit|
|
27
|
+
# ["qt4", "tk", "gtk"].each() do |toolkit|
|
28
|
+
|
29
|
+
GUI.set_toolkit_priority( [toolkit] )
|
30
|
+
|
31
|
+
values = { "script_name"=>"script_name", "used_plugins"=>["used1", "used2", "used3", "used4"], "unused_plugins"=>["unused1", "unused2"], "cleanup_lyrics"=>"true", "threaded"=>"false", "write_log"=>"true" }
|
32
|
+
GUI.show_plugins_manager_dialog( values )
|
33
|
+
values.each() { |key, value| puts "#{key}: #{value}" }
|
34
|
+
|
35
|
+
values = { "artist"=>"artist", "title"=>"title", "lyrics"=>"lyrícs1\nlyrícs2", "site"=>"site" }
|
36
|
+
GUI.show_lyrics_dialog( values )
|
37
|
+
values.each() { |key, value| puts "#{key}: #{value}" }
|
38
|
+
|
39
|
+
values = { "artist"=>"artist", "title"=>"title", "album"=>"album", "year"=>"1969" }
|
40
|
+
GUI.show_search_lyrics_dialog( values )
|
41
|
+
values.each() { |key, value| puts "#{key}: #{value}" }
|
42
|
+
|
43
|
+
values = { "site_name"=>"site_name", "submit"=>"true", "review"=>"true", "prompt_autogen"=>"false", "prompt_no_lyrics"=>"false", "username"=>"username", "password"=>"password" }
|
44
|
+
GUI.show_wiki_plugin_dialog( values )
|
45
|
+
values.each() { |key, value| puts "#{key}: #{value}" }
|
46
|
+
|
47
|
+
values = { "site_name"=>"site_name", "url"=>"url", "artist"=>"artist", "year"=>"1999", "album"=>"album", "title"=>"title", "lyrics"=>"lyrícs1\nlyrícs2", "lyricist"=>"lyricist", "credits"=>"credits", "reviewed"=>"false" }
|
48
|
+
GUI.show_submit_song_dialog( values )
|
49
|
+
values.each() { |key, value| puts "#{key}: #{value}" }
|
50
|
+
|
51
|
+
values = { "site_name"=>"site_name", "artist"=>"artist", "year"=>"1999", "month"=>"10", "day"=>"14","album"=>"album", "reviewed"=>"false", "image_path"=>"image_path", "tracks"=>"tracks <small>fffff</small>\ntracks <small>fffff</small>" }
|
52
|
+
GUI.show_submit_album_dialog( values )
|
53
|
+
values.each() { |key, value| puts "#{key}: #{value}" }
|
54
|
+
|
55
|
+
values = { "site_name"=>"site_name", "artist"=>"artist", "year"=>"1999", "month"=>"10", "day"=>"14","album"=>"album", "reviewed"=>"false", "tracks"=>"tracks <small>fffff</small>\ntracks <small>fffff</small>" }
|
56
|
+
GUI.show_submit_album_dialog( values )
|
57
|
+
values.each() { |key, value| puts "#{key}: #{value}" }
|
58
|
+
|
59
|
+
GUI.show_wiki_fix_pages_dialog( {
|
60
|
+
"site_name" => "site_name",
|
61
|
+
"title" => "Pages fixer",
|
62
|
+
"fetch_func" => "proc { `kdialog --msgbox 'fetch_func'` }",
|
63
|
+
"fix_func" => "proc { `kdialog --msgbox 'fix_func'` }",
|
64
|
+
"submit_func" => "proc { `kdialog --msgbox 'submit_func'` }"
|
65
|
+
} )
|
66
|
+
values.each() { |key, value| puts "#{key}: #{value}" }
|
67
|
+
|
68
|
+
values = { "site_name"=>"site_name", "artist"=>"artist", "album"=>"album", "year"=>"year", "image_path" => "image_path" }
|
69
|
+
GUI.show_upload_cover_dialog( values )
|
70
|
+
values.each() { |key, value| puts "#{key}: #{value}" }
|
71
|
+
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
IMPORTANT: save all language files with UTF-8 encoding
|
@@ -0,0 +1,181 @@
|
|
1
|
+
cli.usage = Usage: %1 [OPTIONS]
|
2
|
+
cli.description = Fetch lyrics from various sites and/or submit lyrics to Lyriki and LyricWiki.
|
3
|
+
cli.values.true = true
|
4
|
+
cli.values.false = false
|
5
|
+
cli.options = Options:
|
6
|
+
cli.options.artist = Song artist (mandatory unless %1 specified).
|
7
|
+
cli.options.title = Song title (mandatory unless %1 specified).
|
8
|
+
cli.options.album = Song album.
|
9
|
+
cli.options.year = Song album year.
|
10
|
+
cli.options.featfix = Fix artist/title when the later has "feat. ARTIST" (%1 by default).
|
11
|
+
cli.options.batchfile = Batch process file (expects artist;title;album;year entries in each line).
|
12
|
+
cli.options.cleanup = Cleanup fetched lyrics (%1 by default).
|
13
|
+
cli.options.sites = Sites to search lyrics for, order included (%1 by default; see %2).
|
14
|
+
cli.options.sites.list = List available sites.
|
15
|
+
cli.options.sites.list.available = Available sites:
|
16
|
+
cli.options.submit = Wiki site to submit content to (needs %1 and %2).
|
17
|
+
cli.options.username = Username to login with (mandatory when %1 specified).
|
18
|
+
cli.options.password = Password to login with (mandatory when %1 specified).
|
19
|
+
cli.options.persist = Restore/save session from/to file (needs %1 and %2).
|
20
|
+
cli.options.prompt.review = Prompt for review before submitting content (%1 by default, needs %2).
|
21
|
+
cli.options.prompt.autogen = Prompt for review of autogenerated pages (%1 by default, needs %2).
|
22
|
+
cli.options.prompt.nolyrics = Prompt for submission even when no lyrics to submit where found (%1 by default, needs %2).
|
23
|
+
cli.options.proxy = Proxy server URL.
|
24
|
+
cli.options.toolkits = GUI toolkits priority. Loading falls back to the next toolkit when one fails; an empty list will cause no dialog to be shown and lyrics to be dumped to stdout (defaults to %1).
|
25
|
+
cli.options.help = Show this message and exit.
|
26
|
+
cli.options.version = Show version and exit.
|
27
|
+
cli.error.missingoption = missing %1
|
28
|
+
cli.error.missingdependency = %1 requires %1
|
29
|
+
cli.error.incompatibleoptions = %1 is incompatible with %2
|
30
|
+
cli.error.invalidoptionvalue = invalid %1 value: %2
|
31
|
+
cli.error.nosite = must provide at least one site
|
32
|
+
cli.error.notoolkit = must provide at least one toolkit to use review mode
|
33
|
+
|
34
|
+
cli.application.searchinglyrics = searching lyrics for %1 by %2...
|
35
|
+
cli.application.lyricsfound = lyrics for %1 by %2 found at %3
|
36
|
+
cli.application.nolyricsfound = no lyrics found for %1 by %2
|
37
|
+
cli.application.plugintimeout = %1 request has timed out, site %2 is probably down
|
38
|
+
cli.application.batchmode = operating in batch mode
|
39
|
+
cli.application.processedcount = %1 files processed
|
40
|
+
|
41
|
+
amarok.application.error.connectionrefused = Can't connect to the Internet (check your proxy settings)
|
42
|
+
amarok.application.error.connectiondown = The connection is down, exiting
|
43
|
+
amarok.application.error.notoolkit = Sorry...\nYou need one of QtRuby, RubyGTK or TkRuby to run this program
|
44
|
+
amarok.application.error.nopluginsselected = No sites to search lyrics for specified
|
45
|
+
amarok.application.search.current = Search current song lyrics
|
46
|
+
amarok.application.search.current.nosongplaying = no song currently playing
|
47
|
+
amarok.application.search.selected = Search selected song lyrics
|
48
|
+
amarok.application.search.noinfofound = no song info found in Amarok database
|
49
|
+
amarok.application.search.nolyricsfound = no lyrics found for <b>%1</b> by <b>%2</b>
|
50
|
+
amarok.application.search.plugintimeout = %1 request has timed out! Site %2 is probably down
|
51
|
+
amarok.application.clearlyricscache = Clear lyrics cache
|
52
|
+
amarok.application.clearlyricscache.confirm = Are you sure you want to clear the lyrics cache?
|
53
|
+
amarok.application.clearlyricscache.done = lyrics cache cleared
|
54
|
+
|
55
|
+
amarok.wikiplugin.checksong = Check/Submit song page
|
56
|
+
amarok.wikiplugin.checksong.noinfofound = no song info found in Amarok database
|
57
|
+
amarok.wikiplugin.checkalbum = Check/Submit album page
|
58
|
+
amarok.wikiplugin.checkalbum.noinfofound = no album info found in Amarok database
|
59
|
+
amarok.wikiplugin.uploadcover = Upload album cover
|
60
|
+
amarok.wikiplugin.uploadcover.invalidalbumparams = invalid album params received
|
61
|
+
amarok.wikiplugin.uploadcover.noimagepath = no cover image received
|
62
|
+
amarok.wikiplugin.uploadcover.searching = searching album cover for <b>%1</b> by <b>%2</b>...
|
63
|
+
amarok.wikiplugin.uploadcover.found = album cover found (no need to upload)
|
64
|
+
amarok.wikiplugin.submitcontent = Submit contents
|
65
|
+
|
66
|
+
gui.common.cut = Cut
|
67
|
+
gui.common.copy = Copy
|
68
|
+
gui.common.paste = Paste
|
69
|
+
gui.common.delete = Delete
|
70
|
+
gui.common.selectall = Select All
|
71
|
+
gui.common.undo = Undo
|
72
|
+
gui.common.redo = Redo
|
73
|
+
|
74
|
+
gui.common.accept = Accept
|
75
|
+
gui.common.cancel = Cancel
|
76
|
+
gui.common.submit = Submit
|
77
|
+
gui.common.load = Load
|
78
|
+
gui.common.fix = Fix
|
79
|
+
gui.common.url = URL
|
80
|
+
gui.common.artist = Artist
|
81
|
+
gui.common.song = Song
|
82
|
+
gui.common.album = Album
|
83
|
+
gui.common.year = Year
|
84
|
+
gui.common.month = Month
|
85
|
+
gui.common.day = Day
|
86
|
+
gui.common.released = Released
|
87
|
+
gui.common.credits = Credits
|
88
|
+
gui.common.lyricist = Lyricist
|
89
|
+
gui.common.image = Image
|
90
|
+
gui.common.reviewed = I have reviewed the contents of this form
|
91
|
+
|
92
|
+
gui.searchlyrics.title = Search lyrics
|
93
|
+
gui.searchlyrics.search = Search Settings
|
94
|
+
|
95
|
+
gui.lyrics.title = Lyrics to %1 by %2
|
96
|
+
|
97
|
+
gui.pluginsmanager.title = %1 script configuration
|
98
|
+
gui.pluginsmanager.sites = Sites
|
99
|
+
gui.pluginsmanager.sites.inuse = Currently used
|
100
|
+
gui.pluginsmanager.sites.available = Available
|
101
|
+
gui.pluginsmanager.sites.moveup = Move Up
|
102
|
+
gui.pluginsmanager.sites.movedown = Move Down
|
103
|
+
gui.pluginsmanager.sites.add = << Add
|
104
|
+
gui.pluginsmanager.sites.remove = >> Remove
|
105
|
+
gui.pluginsmanager.misc = Miscellaneous
|
106
|
+
gui.pluginsmanager.misc.cleanup = Clean up retrieved lyrics
|
107
|
+
gui.pluginsmanager.misc.singlethreaded = Avoid using multiple threads to save battery (needs restart)
|
108
|
+
gui.pluginsmanager.misc.writelog = Write log to %1
|
109
|
+
|
110
|
+
gui.wikiplugin.title = Configure %1 settings
|
111
|
+
gui.wikiplugin.general = General Settings
|
112
|
+
gui.wikiplugin.general.submit = Submit contents to %1
|
113
|
+
gui.wikiplugin.general.review = Prompt for review before submitting contents
|
114
|
+
gui.wikiplugin.general.autogen = Review song pages marked as auto-generated
|
115
|
+
gui.wikiplugin.general.nolyrics = Show submit dialog even if no lyrics were found
|
116
|
+
gui.wikiplugin.login = Login Settings
|
117
|
+
gui.wikiplugin.login.username = Username
|
118
|
+
gui.wikiplugin.login.password = Password
|
119
|
+
|
120
|
+
gui.submitsong.title.submit = %1 - Submit song page
|
121
|
+
gui.submitsong.title.edit = %1 - Review song page
|
122
|
+
gui.submitsong.instrumental = Song is instrumental
|
123
|
+
|
124
|
+
gui.submitalbum.title = %1 - Submit album page
|
125
|
+
gui.submitalbum.coverfound = (cover found, no need to upload)
|
126
|
+
|
127
|
+
gui.uploadcover.title = %1 - Upload album cover
|
128
|
+
gui.uploadcover.imagepath = Path
|
129
|
+
gui.uploadcover.browseimage.title = Select album cover image path
|
130
|
+
gui.uploadcover.browseimage.images = Images
|
131
|
+
gui.uploadcover.browseimage.allfiles = All Files
|
132
|
+
|
133
|
+
gui.fixpages.success = Submitted page %1
|
134
|
+
gui.fixpages.error = Error submitting page %1
|
135
|
+
|
136
|
+
wiki.control.versionblocked = <b>Version %1 has been blocked</b> from submitting content. Please, update to the last version.
|
137
|
+
wiki.control.userblocked = <b>User %1 has been blocked</b> from submitting content. Please, check your user page.
|
138
|
+
wiki.control.updated = A new version of the script has been released. <b>Please, update to version %1</b>.
|
139
|
+
|
140
|
+
wiki.login.attempt = starting session for user <b>%1</b>...
|
141
|
+
wiki.login.success = session started successfully for user <b>%1</b>
|
142
|
+
wiki.login.error = error starting session for user <b>%1</b>
|
143
|
+
wiki.logout = session finished for user <b>%1</b>
|
144
|
+
|
145
|
+
wiki.session.save.success = session saved for user <b>%1</b>
|
146
|
+
wiki.session.save.error.notloggedin = can't save session before logging in
|
147
|
+
wiki.session.save.error = there was an error saving the session for user <b>%1</b>
|
148
|
+
wiki.session.restore.success = session restored for user <b>%1</b>
|
149
|
+
wiki.session.restore.error = there was an error restoring the session for user <b>%1</b>
|
150
|
+
wiki.session.restore.notfound = no saved session found
|
151
|
+
|
152
|
+
wiki.submitsong.searchingpage = searching song page for <b>%1</b> by <b>%2</b>...
|
153
|
+
wiki.submitsong.pagefound = song page found for <b>%1</b> by <b>%2</b>
|
154
|
+
wiki.submitsong.pagefound.autogenerated = auto-generated song page found for <b>%1</b> by <b>%2</b>
|
155
|
+
wiki.submitsong.nopagefound = no song page found for <b>%1</b> by <b>%2</b>
|
156
|
+
wiki.submitsong.cancelled = song page submission cancelled by user
|
157
|
+
wiki.submitsong.mustreviewcontent = contents were not reviewed, submission cancelled
|
158
|
+
wiki.submitsong.success = successfully submitted song page for <b>%1</b> by <b>%2</b>
|
159
|
+
wiki.submitsong.error.invalidsong = invalid song title received
|
160
|
+
wiki.submitsong.error.invalidartist = invalid album artist received
|
161
|
+
wiki.submitsong.error.nolyrics = no lyrics to submit received
|
162
|
+
wiki.submitsong.error = there was an error submitting the song page for <b>%1</b> by <b>%2</b>
|
163
|
+
|
164
|
+
wiki.submitalbum.searchingpage = searching album page for <b>%1</b> by <b>%2</b>...
|
165
|
+
wiki.submitalbum.pagefound = found album page for <b>%1</b> by <b>%2</b>
|
166
|
+
wiki.submitalbum.nopagefound = no album page found for <b>%1</b> by <b>%2</b>
|
167
|
+
wiki.submitalbum.cancelled = album page submission cancelled by user
|
168
|
+
wiki.submitalbum.mustreviewcontent = contents were not reviewed, submission cancelled
|
169
|
+
wiki.submitalbum.success = successfully submitted album page for <b>%1</b> by <b>%2</b>
|
170
|
+
wiki.submitalbum.error.invalidyear = invalid album year received
|
171
|
+
wiki.submitalbum.error.invalidalbum = invalid album name received
|
172
|
+
wiki.submitalbum.error.invalidartist = invalid album artist received
|
173
|
+
wiki.submitalbum.error = there was an error submitting the album page for <b>%1</b> by <b>%2</b>
|
174
|
+
|
175
|
+
wiki.submitredirect.success = submitted redirect page to %1
|
176
|
+
wiki.submitredirect.error = there was an error submitting the redirect page to %1
|
177
|
+
|
178
|
+
wiki.uploadcover.uploading = uploading album cover for <b>%1</b> by <b>%2</b>
|
179
|
+
wiki.uploadcover.success = successfully uploaded album cover for <b>%1</b> by <b>%2</b>
|
180
|
+
wiki.uploadcover.error.convert = there was an error converting the album cover to JPEG format
|
181
|
+
wiki.uploadcover.error = there was an error uploading the album cover for <b>%1</b> by <b>%2</b>
|