lyrics-ebook 0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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>
|