Class: MultimediaParadise::Audio::LyricsFetcher
- Inherits:
-
Base
- Object
- Base
- MultimediaParadise::Audio::LyricsFetcher
show all
- Defined in:
- lib/multimedia_paradise/audio/lyrics_fetcher.rb
Overview
Constant Summary
collapse
- SEARCH_TERM =
'Luca'
Constants inherited
from Base
Base::ERROR, Base::ERROR_LINE, Base::NAMESPACE, Base::USE_THIS_NAMESPACE_FOR_THE_COLOURS, Base::USE_THIS_NAMESPACE_FOR_THE_CORE_COLOURS
Instance Method Summary
collapse
Methods inherited from Base
[], #actions, #append_what_into, #be_silent, #be_verbose?, #beautiful_url, #cartoons_directory?, #clear_the_internal_hash, #cliner, #cliner_with_time_stamp, #colourized_comment, #copy_file, #crimson, #dataset_from_file_video_collection, #dd_mm_yyyy, #debug?, #default_readlines, #directory_to_realvids?, #do_not_use_opn, #dodgerblue, #does_the_video_player_support_this_commandline?, #e, #ecomment, #ecrimson, #efancy, #enable_debug, #ensure_main_encoding, #ensure_that_the_output_directory_exists, #eparse, #erev, #esystem, #ewarn, #file_video_collection?, #filter_for_audio_files, #filter_for_video_files, #forestgreen, #gold, #grey, #hh_mm_ss, #home_x_video?, #indianred, #infer_the_namespace, #internal_hash?, #is_audio_file?, #is_mkv?, #is_mp3?, #is_mp4?, #is_multimedia_file?, #is_on_roebe?, #is_video_file?, #konsole_colour_peru, #lightblue, #lightgreen, #load_yaml, #local_audio_directory?, #log_dir?, #map_symbol_to_locally_existing_file, #mediumorchid, #mediumpurple, #mediumslateblue, #mkdir, #move_file, #namespace?, #no_file_exists, #no_file_exists_at, #olive, #olivedrab, #opne, #opnecomment, #opnn, #orange, #palegoldenrod, #palegreen, #powderblue, #project_base_directory?, #rds, #register_sigint, #remove_file, #report_pwd, #reset_the_internal_hash, #return_all_video_files, #return_pwd, #return_random_video, #rev, #royalblue, #save_what_into, #sdir, #seagreen, #seconds_to_time_format, #select_only_video_files_from, #set_be_verbose, #set_use_colours, #sfancy, #sfile, #simp, #skyblue, #slateblue, #springgreen, #steelblue, #swarn, #teal, #time_right_now, #to_hh_mm_ss, #tomato, #true_rev, #try_to_rename_kde_konsole_tab, #ucliner, #use_colours?, #use_opn?, #use_which_video_player?, #verbose_truth, #video_collection?, #violet, #yaml_directory?, #yel
#all_input_starts_with_a_number?, #commandline_arguments?, #commandline_arguments_as_a_string, #first_argument?, #first_non_hyphened_commandline_argument?, #set_commandline_arguments
Constructor Details
#initialize(search_term = nil, run_already = true) ⇒ LyricsFetcher
34
35
36
37
38
39
40
41
42
43
|
# File 'lib/multimedia_paradise/audio/lyrics_fetcher.rb', line 34
def initialize(
search_term = nil,
run_already = true
)
reset
set_search_term(
search_term
)
run if run_already
end
|
Instance Method Details
#feedback_available_titles ⇒ Object
#
feedback_available_titles
#
203
204
205
206
207
208
209
210
211
212
213
214
215
|
# File 'lib/multimedia_paradise/audio/lyrics_fetcher.rb', line 203
def feedback_available_titles
_ = obtain_raw_dataset
if _.is_a? Hash
counter = 0
cliner
_.each_pair {|title, value|
counter += 1
e; e '('+counter.to_s.rjust(2)+') '+simp(title)
e; e value; e
cliner
}
end
end
|
#fetch_subsections_from_dataset ⇒ Object
#
fetch_subsections_from_dataset
#
194
195
196
197
198
|
# File 'lib/multimedia_paradise/audio/lyrics_fetcher.rb', line 194
def fetch_subsections_from_dataset
lyrics?.each {|line|
e line.delete(',').delete('"') if line.include? 'add_song'
}
end
|
#lyrics? ⇒ Boolean
187
188
189
|
# File 'lib/multimedia_paradise/audio/lyrics_fetcher.rb', line 187
def lyrics?
@hash[:raw_dataset]
end
|
#main_file? ⇒ Boolean
77
78
79
|
# File 'lib/multimedia_paradise/audio/lyrics_fetcher.rb', line 77
def main_file?
LYRICS_YAML_FILE
end
|
#
The menu will, by default, try to find a proper title.
#
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
# File 'lib/multimedia_paradise/audio/lyrics_fetcher.rb', line 123
def (
i = @search_term
)
case i when *ARRAY_HELP_OPTIONS
show_help
exit
when 'open'
open_yaml_file_in_editor
exit
when 'feedback_available_titles','fat','--feedback',
'--available_titles',/available-?titles/
feedback_available_titles
exit
when 'file?','--file?','--location'
show_file_path
exit
else
try_to_find_this_title(i)
end if i
end
|
#obtain_raw_dataset ⇒ Object
Also known as:
raw_dataset?, load_yaml_dataset
96
97
98
99
100
101
102
103
|
# File 'lib/multimedia_paradise/audio/lyrics_fetcher.rb', line 96
def obtain_raw_dataset
@hash[:raw_dataset] = nil
begin
@hash[:raw_dataset] = YAML.load_file(main_file?)
rescue Exception => e
pp e
end
end
|
#open_yaml_file_in_editor ⇒ Object
#
open_yaml_file_in_editor
Invocation example:
lfetcher open
#
114
115
116
|
# File 'lib/multimedia_paradise/audio/lyrics_fetcher.rb', line 114
def open_yaml_file_in_editor
esystem "bluefish #{main_file?}"
end
|
#report(this = ) ⇒ Object
220
221
222
223
224
225
226
227
|
# File 'lib/multimedia_paradise/audio/lyrics_fetcher.rb', line 220
def report(this = @hash[:text])
cliner colour: :konsole_slateblue
e this
cliner colour: :konsole_slateblue
end
|
#reset ⇒ Object
48
49
50
51
52
53
54
55
|
# File 'lib/multimedia_paradise/audio/lyrics_fetcher.rb', line 48
def reset
super()
@hash = {}
infer_the_namespace
end
|
#run ⇒ Object
232
233
234
235
236
|
# File 'lib/multimedia_paradise/audio/lyrics_fetcher.rb', line 232
def run
load_yaml_dataset
fetch_subsections_from_dataset
end
|
#set_search_term(i = SEARCH_TERM) ⇒ Object
60
61
62
63
64
65
66
67
68
69
70
71
72
|
# File 'lib/multimedia_paradise/audio/lyrics_fetcher.rb', line 60
def set_search_term(i = SEARCH_TERM)
if i.is_a? Array
i = i.join(' ').strip
end
case i
when nil, :default
i = SEARCH_TERM
end
@search_term = i
end
|
#show_file_path ⇒ Object
180
181
182
|
# File 'lib/multimedia_paradise/audio/lyrics_fetcher.rb', line 180
def show_file_path
e LYRICS_YAML_FILE
end
|
#show_help ⇒ Object
84
85
86
87
88
89
90
91
|
# File 'lib/multimedia_paradise/audio/lyrics_fetcher.rb', line 84
def show_help
opne 'These options are available:'
e
opne ' --file? # Feedback the full path to the .yml '\
'file in question'
opne ' --available_titles # Feedback the available titles'
e
end
|
#try_to_find_this_title(i) ⇒ Object
#
try_to_find_this_title
This method will try to find an appropriate title.
#
162
163
164
165
166
167
168
169
170
171
172
173
174
175
|
# File 'lib/multimedia_paradise/audio/lyrics_fetcher.rb', line 162
def try_to_find_this_title(i)
_ = raw_dataset?
keys = _.keys.map
possible_matches = keys.select {|entry|
entry = entry.dup if entry.frozen?
entry.downcase.include? i.downcase
}
if possible_matches.empty?
opne 'Did not find that particular key.'
else
@hash[:text] = _[possible_matches.first]
report(@hash[:text])
end
end
|