Class: MultimediaParadise::Audio::AudioTagReader
- Inherits:
-
Base
- Object
- Base
- MultimediaParadise::Audio::AudioTagReader
show all
- Defined in:
- lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb
Overview
Constant Summary
collapse
- N_PAD =
25
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
Class Method Summary
collapse
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(commandline_arguments = nil, run_already = true) ⇒ AudioTagReader
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 37
def initialize(
commandline_arguments = nil,
run_already = true
)
reset
set_commandline_arguments(
commandline_arguments
)
if block_given?
yielded = yield
case yielded
when :do_not_report_anything,
:be_quiet,
:be_silent
@may_we_report = false
end
end
run if run_already
end
|
Class Method Details
.[](i = '') ⇒ Object
488
489
490
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 488
def self.[](i = '')
new(i) { :be_quiet}
end
|
Instance Method Details
#album? ⇒ Boolean
Also known as:
album
219
220
221
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 219
def album?
@album
end
|
#artist? ⇒ Boolean
Also known as:
artist
191
192
193
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 191
def artist?
@artist
end
|
#band? ⇒ Boolean
Also known as:
band
233
234
235
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 233
def band?
@band
end
|
#bpm? ⇒ Boolean
Also known as:
bpm
212
213
214
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 212
def bpm?
@bpm
end
|
254
255
256
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 254
def
@comment
end
|
#date? ⇒ Boolean
Also known as:
date
198
199
200
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 198
def date?
@date
end
|
#disc? ⇒ Boolean
Also known as:
disc
205
206
207
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 205
def disc?
@disc
end
|
#do_determine_the_length_of_the_song(this_file = main_file?
) ⇒ Object
#
do_determine_the_length_of_the_song
The first argument should be the name of the .mp3 file at hand.
#
407
408
409
410
411
412
413
414
415
416
417
418
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 407
def do_determine_the_length_of_the_song(
this_file = main_file?
)
@length_in_seconds = ::MultimediaParadise.length_of?(this_file)
end
|
#genre? ⇒ Boolean
Also known as:
genre
240
241
242
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 240
def genre?
@genre
end
|
#length_in_seconds? ⇒ Boolean
398
399
400
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 398
def length_in_seconds?
@length_in_seconds
end
|
247
248
249
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 247
def performer?
@performer
end
|
#report_album(i = @album) ⇒ Object
130
131
132
133
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 130
def report_album(i = @album)
e sfancy(' Album: '.ljust(N_PAD))+
right_colour(i.to_s)
end
|
#report_artist(i = @artist) ⇒ Object
122
123
124
125
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 122
def report_artist(i = @artist)
e sfancy(' Artist: '.ljust(N_PAD))+
right_colour(i.to_s)
end
|
138
139
140
141
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 138
def (i = @comment)
e sfancy(' Comment: '.ljust(N_PAD))+
right_colour(i.to_s)
end
|
#report_everything ⇒ Object
Also known as:
report
#
report_everything
This method will report as much as possible about the song at hand.
“track” would also be a tag that could be shown. Personally I don’t really need it, though.
#
336
337
338
339
340
341
342
343
344
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 336
def report_everything
report_title
report_artist
report_album
report_year
report_genre
report_length_in_seconds
end
|
#report_genre(i = @genre) ⇒ Object
#
report_genre
To get all available genres, see:
https://en.wikipedia.org/wiki/ID3
#
151
152
153
154
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 151
def report_genre(i = @genre)
e sfancy(' Genre: '.ljust(N_PAD))+
right_colour(i.to_s)
end
|
#report_length_in_seconds(i = @length_in_seconds) ⇒ Object
#
report_length_in_seconds
#
167
168
169
170
171
172
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 167
def report_length_in_seconds(
i = @length_in_seconds
)
e sfancy(' Duration (in seconds): '.ljust(N_PAD))+
right_colour(i.to_s)
end
|
#report_title(i = @title) ⇒ Object
107
108
109
110
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 107
def report_title(i = @title)
e sfancy(' Title: '.ljust(N_PAD))+
right_colour(i.to_s)
end
|
#report_year(i = @year) ⇒ Object
159
160
161
162
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 159
def report_year(i = @year)
e sfancy(' Year: '.ljust(N_PAD))+
right_colour(i.to_s)
end
|
#reset ⇒ Object
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 66
def reset
super()
@performer = nil
@band = nil
@bpm = nil
@date = nil
@disc = nil
@may_we_report = true
end
|
#right_colour(i) ⇒ Object
115
116
117
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 115
def right_colour(i)
mediumpurple(i)
end
|
#run ⇒ Object
474
475
476
477
478
479
480
481
482
483
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 474
def run
try_to_require_the_tablib_gem
this_file = first_argument?.to_s.dup
set_this_file(this_file)
work_on_this_file(this_file?)
end
|
#save ⇒ Object
467
468
469
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 467
def save
@tag.save
end
|
#set_album(i) ⇒ Object
Also known as:
album=
275
276
277
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 275
def set_album(i)
@album = i.to_s
end
|
#set_artist(i) ⇒ Object
Also known as:
artist=
282
283
284
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 282
def set_artist(i)
@artist = i.to_s
end
|
289
290
291
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 289
def (i)
@comment = i.to_s
end
|
#set_genre(i) ⇒ Object
Also known as:
genre=
310
311
312
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 310
def set_genre(i)
@genre = i.to_s
end
|
#set_new_album(i) ⇒ Object
324
325
326
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 324
def set_new_album(i)
@tag.album = i
end
|
#set_new_year(i) ⇒ Object
317
318
319
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 317
def set_new_year(i)
@tag.year = i.to_i end
|
#set_this_file(i) ⇒ Object
100
101
102
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 100
def set_this_file(i)
@this_file = i
end
|
#set_title(i) ⇒ Object
Also known as:
title=
268
269
270
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 268
def set_title(i)
@title = i.to_s
end
|
#set_track(i) ⇒ Object
Also known as:
track=
296
297
298
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 296
def set_track(i)
@track = i.to_i end
|
#set_year(i) ⇒ Object
Also known as:
year=
303
304
305
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 303
def set_year(i)
@year = i.to_i end
|
#tag? ⇒ Boolean
Also known as:
tag
177
178
179
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 177
def tag?
@tag
end
|
#this_file? ⇒ Boolean
Also known as:
main_file?
391
392
393
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 391
def this_file?
@this_file
end
|
#title? ⇒ Boolean
Also known as:
title
184
185
186
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 184
def title?
@title
end
|
#track? ⇒ Boolean
Also known as:
track
261
262
263
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 261
def track?
@track
end
|
#try_to_require_the_tablib_gem ⇒ Object
#
try_to_require_the_tablib_gem
#
423
424
425
426
427
428
429
430
431
432
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 423
def try_to_require_the_tablib_gem
begin
require 'taglib'
rescue LoadError; end
end
|
#update!(this_file = @this_file, title = @title, artist = @artist, genre = @genre, comment = @comment, track = @track) ⇒ Object
#
update!
This method can be used to update the tags.
#
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 439
def update!(
this_file = @this_file,
title = @title,
artist = @artist,
genre = @genre,
= @comment,
track = @track
)
TagLib::FileRef.open(this_file) { |fileref| unless fileref.null?
@tag = fileref.tag set_new_album(@album) set_new_year(@year) @tag.title = title.to_s
@tag.artist = artist.to_s
@tag.genre = genre.to_s
@tag. = .to_s
if track
@tag.track = track.to_i end
fileref.save
end
}
end
|
#work_on_this_file(this_file = this_file?
) ⇒ Object
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 349
def work_on_this_file(
this_file = this_file?
)
unless Object.const_defined? :TagLib
text = <<-EOF
Please install TagLib first via:
gem install taglib
EOF
e text
return text
end
TagLib::FileRef.open(this_file) { |fileref| unless fileref.null?
@tag = fileref.tag @title = @tag.title @artist = @tag.artist @album = @tag.album @year = @tag.year @genre = @tag.genre @comment = @tag.
@track = @tag.track
@performer = @tag.performer if @tag.respond_to? :performer
@properties = fileref.audio_properties
do_determine_the_length_of_the_song(this_file)
if @may_we_report
e
report_everything
e
end
end
} end
|
#year? ⇒ Boolean
Also known as:
year
226
227
228
|
# File 'lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb', line 226
def year?
@year
end
|