multimedia_paradise 1.1.344 → 1.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +99 -77
- data/bin/audio_player +1 -1
- data/bin/extract_images_from_this_video_file +1 -1
- data/bin/loop_this_video +1 -1
- data/bin/merge_avi_files +1 -1
- data/bin/merge_mp3 +1 -1
- data/bin/mp3_to_opus +1 -1
- data/bin/mpg_to_mp4 +1 -1
- data/bin/multimedia_paradise +1 -1
- data/bin/to_aiff +2 -5
- data/bin/to_flac +7 -0
- data/bin/to_mp3 +8 -0
- data/bin/to_mp4 +1 -1
- data/bin/to_ogg +7 -0
- data/bin/verbose_analyse_this_mp3_file_for_id3_tags +1 -1
- data/bin/video_codec +1 -1
- data/bin/video_thumbnail +1 -1
- data/bin/video_to_images +1 -1
- data/doc/README.gen +88 -51
- data/doc/{CHANGELOG.md → changelog/changelog.md} +8 -6
- data/doc/{LINKS.md → links/links.md} +2 -2
- data/doc/{MOTIVATION_FOR_THIS_PROJECT.md → motivation_for_the_multimedia_paradise_project/motivation_for_the_multimedia_paradise_project.md} +5 -5
- data/doc/todo/todo_for_the_multimedia_paradise_project.md +79 -93
- data/lib/multimedia_paradise/actions/actions.rb +224 -0
- data/lib/multimedia_paradise/audio/audio_player/audio_player.rb +61 -64
- data/lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb +17 -8
- data/lib/multimedia_paradise/audio/base.rb +0 -5
- data/lib/multimedia_paradise/audio/compress.rb +8 -5
- data/lib/multimedia_paradise/audio/create_m3u_playlist.rb +7 -11
- data/lib/multimedia_paradise/audio/extract_audio/constants.rb +0 -37
- data/lib/multimedia_paradise/audio/extract_audio/extract_audio.rb +90 -68
- data/lib/multimedia_paradise/audio/file_duration/file_duration.rb +134 -80
- data/lib/multimedia_paradise/audio/genres/boogie.rb +1 -6
- data/lib/multimedia_paradise/audio/genres/concerts.rb +1 -6
- data/lib/multimedia_paradise/audio/genres/constants.rb +1 -1
- data/lib/multimedia_paradise/audio/genres/eurodance.rb +1 -6
- data/lib/multimedia_paradise/audio/genres/genre.rb +36 -33
- data/lib/multimedia_paradise/audio/genres/hip_hop.rb +1 -6
- data/lib/multimedia_paradise/audio/genres/italian_songs.rb +1 -6
- data/lib/multimedia_paradise/audio/genres/the_1980s.rb +1 -6
- data/lib/multimedia_paradise/audio/genres/trance.rb +4 -7
- data/lib/multimedia_paradise/audio/lyrics_fetcher.rb +27 -22
- data/lib/multimedia_paradise/audio/merge_audio_files.rb +18 -11
- data/lib/multimedia_paradise/audio/modify_year_of_audio_file.rb +23 -11
- data/lib/multimedia_paradise/audio/n_audio_songs.rb +3 -2
- data/lib/multimedia_paradise/audio/play_all_audio_files.rb +41 -16
- data/lib/multimedia_paradise/audio/playlist/playlist.rb +163 -123
- data/lib/multimedia_paradise/audio/remove_audio.rb +11 -6
- data/lib/multimedia_paradise/audio/remove_last_second.rb +2 -3
- data/lib/multimedia_paradise/audio/report_missing_id.rb +22 -12
- data/lib/multimedia_paradise/audio/streamripper/streamripper_wrapper.rb +7 -5
- data/lib/multimedia_paradise/audio/to_mp3.rb +7 -5
- data/lib/multimedia_paradise/audio/to_ogg.rb +3 -1
- data/lib/multimedia_paradise/audio/wav_to_mp3.rb +5 -5
- data/lib/multimedia_paradise/base/base.rb +854 -15
- data/lib/multimedia_paradise/base/colours.rb +28 -31
- data/lib/multimedia_paradise/base/{commandline_arguments.rb → commandline_arguments_module/commandline_arguments_module.rb} +12 -9
- data/lib/multimedia_paradise/colours/colours.rb +4 -1
- data/lib/multimedia_paradise/commandline/{menu.rb → commandline.rb} +19 -16
- data/lib/multimedia_paradise/constants/constants.rb +504 -14
- data/lib/multimedia_paradise/constants/web_constants.rb +2 -4
- data/lib/multimedia_paradise/gui/gui_base.rb +2 -2
- data/lib/multimedia_paradise/gui/libui/lyrics/lyrics.rb +1 -1
- data/lib/multimedia_paradise/gui/libui/simple_play_widget/simple_play_widget.rb +1 -1
- data/lib/multimedia_paradise/gui/libui/video_player/video_player.rb +1 -1
- data/lib/multimedia_paradise/gui/libui/youtube_channels/youtube_channels.rb +1 -1
- data/lib/multimedia_paradise/gui/shared_code/multimedia_converter/multimedia_converter_module.rb +0 -478
- data/lib/multimedia_paradise/gui/shared_code/playlist/playlist_module.rb +94 -41
- data/lib/multimedia_paradise/gui/shared_code/simple_play_widget/simple_play_widget_module.rb +0 -257
- data/lib/multimedia_paradise/gui/universal_widgets/change_metadata_widget/change_metadata_widget.rb +2 -2
- data/lib/multimedia_paradise/gui/universal_widgets/information_about_a_mp3_file/information_about_a_mp3_file.rb +1 -1
- data/lib/multimedia_paradise/gui/universal_widgets/lyrics/lyrics.rb +1 -1
- data/lib/multimedia_paradise/gui/universal_widgets/multimedia_converter/multimedia_converter.rb +589 -0
- data/lib/multimedia_paradise/gui/universal_widgets/playlist/playlist.rb +197 -0
- data/lib/multimedia_paradise/gui/universal_widgets/radio/radio.rb +1 -1
- data/lib/multimedia_paradise/gui/{gtk2 → universal_widgets}/simple_play_widget/README.md +1 -1
- data/lib/multimedia_paradise/gui/universal_widgets/simple_play_widget/simple_play_widget.rb +404 -0
- data/lib/multimedia_paradise/gui/universal_widgets/tag_mp3_files/tag_mp3_files.rb +3 -6
- data/lib/multimedia_paradise/java/Playlist.class +0 -0
- data/lib/multimedia_paradise/java/Playlist.java +198 -0
- data/lib/multimedia_paradise/multimedia/analyse_multimedia_file.rb +21 -19
- data/lib/multimedia_paradise/multimedia/avisynth/avisynth_code.avs +441 -442
- data/lib/multimedia_paradise/multimedia/base.rb +0 -18
- data/lib/multimedia_paradise/multimedia/chord.rb +1 -1
- data/lib/multimedia_paradise/multimedia/cut_multimedia/cut_multimedia.rb +7 -5
- data/lib/multimedia_paradise/multimedia/cut_multimedia/evaluate_from_this_file.rb +2 -2
- data/lib/multimedia_paradise/multimedia/interactive_shell.rb +22 -3
- data/lib/multimedia_paradise/multimedia/merge_multimedia.rb +4 -3
- data/lib/multimedia_paradise/multimedia/play_from_this_list.rb +4 -27
- data/lib/multimedia_paradise/multimedia/{read_meta_tags.rb → read_meta_tags/read_meta_tags.rb} +14 -19
- data/lib/multimedia_paradise/multimedia/start_length_duration.rb +3 -3
- data/lib/multimedia_paradise/project/project.rb +8 -4
- data/lib/multimedia_paradise/requires/require_the_multimedia_paradise_project.rb +5 -5
- data/lib/multimedia_paradise/requires/require_toplevel_methods_files.rb +1 -1
- data/lib/multimedia_paradise/sinatra/app.rb +3 -3
- data/lib/multimedia_paradise/statistics/README.md +6 -5
- data/lib/multimedia_paradise/statistics/video.rb +34 -14
- data/lib/multimedia_paradise/{misc → time}/long_format_to_milliseconds_converter.rb +4 -2
- data/lib/multimedia_paradise/{misc → time}/milliseconds_to_long_format_converter.rb +2 -2
- data/lib/multimedia_paradise/toplevel_methods/audio_related_code.rb +138 -0
- data/lib/multimedia_paradise/toplevel_methods/chop_into_segments_of_n_seconds_size.rb +2 -2
- data/lib/multimedia_paradise/{conversions → toplevel_methods}/conversions.rb +140 -48
- data/lib/multimedia_paradise/toplevel_methods/copy_and_merge_this_video_n_times.rb +5 -5
- data/lib/multimedia_paradise/toplevel_methods/create_video_from_this_audio.rb +7 -6
- data/lib/multimedia_paradise/toplevel_methods/cut_from_to.rb +2 -2
- data/lib/multimedia_paradise/toplevel_methods/denoise.rb +2 -2
- data/lib/multimedia_paradise/toplevel_methods/deshake.rb +3 -6
- data/lib/multimedia_paradise/toplevel_methods/{output_directory.rb → directory_related_code.rb} +38 -1
- data/lib/multimedia_paradise/toplevel_methods/encode_this_video.rb +8 -4
- data/lib/multimedia_paradise/toplevel_methods/esystem.rb +43 -4
- data/lib/multimedia_paradise/{ffmpeg → toplevel_methods}/ffmpeg.rb +200 -193
- data/lib/multimedia_paradise/toplevel_methods/{files_and_directories.rb → files_related_code.rb} +19 -56
- data/lib/multimedia_paradise/toplevel_methods/flip_and_rotate.rb +3 -3
- data/lib/multimedia_paradise/toplevel_methods/is_audio_file_is_video_file_is_image_file_is_multimedia_file.rb +115 -0
- data/lib/multimedia_paradise/toplevel_methods/is_on_roebe.rb +1 -1
- data/lib/multimedia_paradise/toplevel_methods/{merge_multimedia_file.rb → merge.rb} +98 -4
- data/lib/multimedia_paradise/toplevel_methods/opn.rb +5 -4
- data/lib/multimedia_paradise/toplevel_methods/player_in_use.rb +14 -7
- data/lib/multimedia_paradise/toplevel_methods/query_the_audio_codec_of_this_file.rb +4 -3
- data/lib/multimedia_paradise/toplevel_methods/radio.rb +1 -3
- data/lib/multimedia_paradise/toplevel_methods/return_all_video_files.rb +4 -4
- data/lib/multimedia_paradise/toplevel_methods/return_path_to_random_simpsons_video_file.rb +1 -1
- data/lib/multimedia_paradise/toplevel_methods/return_random_video_file_from_the_video_collection.rb +9 -7
- data/lib/multimedia_paradise/toplevel_methods/scale_video.rb +3 -4
- data/lib/multimedia_paradise/toplevel_methods/set_title_of.rb +6 -6
- data/lib/multimedia_paradise/{help/help.rb → toplevel_methods/show_help.rb} +14 -8
- data/lib/multimedia_paradise/toplevel_methods/slow_down_this_video_file.rb +2 -3
- data/lib/multimedia_paradise/toplevel_methods/start_screencast.rb +3 -2
- data/lib/multimedia_paradise/toplevel_methods/{misc.rb → toplevel_methods.rb} +485 -527
- data/lib/multimedia_paradise/toplevel_methods/total_duration.rb +4 -3
- data/lib/multimedia_paradise/toplevel_methods/use_lame_codec.rb +1 -2
- data/lib/multimedia_paradise/toplevel_methods/video_dataset.rb +1 -1
- data/lib/multimedia_paradise/version/version.rb +2 -2
- data/lib/multimedia_paradise/video/all_videos.rb +12 -19
- data/lib/multimedia_paradise/video/check_numbers.rb +76 -32
- data/lib/multimedia_paradise/video/columbo/columbo.rb +36 -14
- data/lib/multimedia_paradise/video/guess_video_name.rb +2 -10
- data/lib/multimedia_paradise/video/mike_hammer/mike_hammer.rb +2 -2
- data/lib/multimedia_paradise/video/missing_video_files/missing_video_files.rb +1 -9
- data/lib/multimedia_paradise/video/movie_searcher.rb +2 -10
- data/lib/multimedia_paradise/video/mplayer_wrapper.rb +1 -9
- data/lib/multimedia_paradise/video/random_video.rb +1 -2
- data/lib/multimedia_paradise/video/registered_video_file.rb +2 -10
- data/lib/multimedia_paradise/video/report_local_videos.rb +1 -9
- data/lib/multimedia_paradise/video/simpsons.rb +2 -10
- data/lib/multimedia_paradise/video/smart_animals/smart_animals.rb +10 -8
- data/lib/multimedia_paradise/video/speed_up_video.rb +28 -10
- data/lib/multimedia_paradise/video/store_available_video_files.rb +49 -33
- data/lib/multimedia_paradise/video/the_simpsons/README.md +0 -0
- data/lib/multimedia_paradise/video/the_simpsons/good_the_simpsons_episodes.rb +8 -8
- data/lib/multimedia_paradise/video/the_simpsons/the_simpsons.rb +14 -10
- data/lib/multimedia_paradise/video/video_information.rb +55 -49
- data/lib/multimedia_paradise/{configuration → yaml/configuration}/play_zoomed.yml +0 -0
- data/lib/multimedia_paradise/yaml/{playlist.yml → playlist/playlist.yml} +14 -15
- data/lib/multimedia_paradise/yaml/video/video.yml +1 -1
- data/lib/multimedia_paradise/yaml/video_collection/video_collection.yml +34 -32
- data/lib/multimedia_paradise/yaml/youtube/alltagsgeschichte/alltagsgeschichte.yml +61 -11
- data/lib/multimedia_paradise/yaml/youtube/songs/songs.yml +5 -3
- data/multimedia_paradise.gemspec +1 -1
- data/test/testing_audio_player.rb +3 -3
- data/test/testing_file_duration.rb +5 -5
- metadata +45 -76
- data/lib/multimedia_paradise/audio/file_duration/constants.rb +0 -53
- data/lib/multimedia_paradise/audio/waveform/class.rb +0 -341
- data/lib/multimedia_paradise/audio/waveform/constants.rb +0 -38
- data/lib/multimedia_paradise/audio/waveform/log.rb +0 -101
- data/lib/multimedia_paradise/base/constants.rb +0 -19
- data/lib/multimedia_paradise/base/encoding.rb +0 -31
- data/lib/multimedia_paradise/base/misc.rb +0 -665
- data/lib/multimedia_paradise/base/namespace.rb +0 -36
- data/lib/multimedia_paradise/base/time.rb +0 -25
- data/lib/multimedia_paradise/constants/conversions.rb +0 -62
- data/lib/multimedia_paradise/constants/directory_constants.rb +0 -139
- data/lib/multimedia_paradise/constants/encodings.rb +0 -26
- data/lib/multimedia_paradise/constants/file_constants.rb +0 -176
- data/lib/multimedia_paradise/constants/misc.rb +0 -80
- data/lib/multimedia_paradise/constants/my_video_directory.rb +0 -30
- data/lib/multimedia_paradise/constants/namespace.rb +0 -14
- data/lib/multimedia_paradise/constants/newline.rb +0 -14
- data/lib/multimedia_paradise/constants/video_filetypes.rb +0 -27
- data/lib/multimedia_paradise/conversions/README.md +0 -2
- data/lib/multimedia_paradise/ffmpeg/README.md +0 -2
- data/lib/multimedia_paradise/gui/gtk2/multimedia_converter/multimedia_converter.rb +0 -33
- data/lib/multimedia_paradise/gui/gtk2/notebook.rb +0 -144
- data/lib/multimedia_paradise/gui/gtk2/play_video_from_my_collection/play_video_from_my_collection.rb +0 -43
- data/lib/multimedia_paradise/gui/gtk2/simple_play_widget/simple_play_widget.rb +0 -40
- data/lib/multimedia_paradise/gui/gtk2/widget_increase_or_decrease_audio/widget_increase_or_decrease_audio.rb +0 -42
- data/lib/multimedia_paradise/gui/gtk2/youtube_downloader/youtube_downloader.rb +0 -32
- data/lib/multimedia_paradise/gui/gtk3/lyrics/lyrics.rb +0 -0
- data/lib/multimedia_paradise/gui/gtk3/multimedia_converter/multimedia_converter.rb +0 -34
- data/lib/multimedia_paradise/gui/gtk3/playlist/playlist.rb +0 -34
- data/lib/multimedia_paradise/gui/gtk3/simple_play_widget/simple_play_widget.rb +0 -38
- data/lib/multimedia_paradise/toplevel_methods/analyze_audio_stream.rb +0 -31
- data/lib/multimedia_paradise/toplevel_methods/codecs.rb +0 -50
- data/lib/multimedia_paradise/toplevel_methods/copy_file.rb +0 -18
- data/lib/multimedia_paradise/toplevel_methods/delay_audio.rb +0 -31
- data/lib/multimedia_paradise/toplevel_methods/ensure_that_the_output_directory_exists.rb +0 -27
- data/lib/multimedia_paradise/toplevel_methods/has_audio.rb +0 -48
- data/lib/multimedia_paradise/toplevel_methods/increase_volume_of_this_audio_file.rb +0 -61
- data/lib/multimedia_paradise/toplevel_methods/is_a_multimedia_file.rb +0 -27
- data/lib/multimedia_paradise/toplevel_methods/is_audio_file.rb +0 -27
- data/lib/multimedia_paradise/toplevel_methods/is_image_file.rb +0 -31
- data/lib/multimedia_paradise/toplevel_methods/is_video_file.rb +0 -62
- data/lib/multimedia_paradise/toplevel_methods/merge_these_videos.rb +0 -106
- data/lib/multimedia_paradise/toplevel_methods/run_sys_command.rb +0 -30
- data/lib/multimedia_paradise/toplevel_methods/to_flac.rb +0 -30
- data/lib/multimedia_paradise/toplevel_methods/to_mp4.rb +0 -24
- /data/doc/{MergingVideoLectures.md → merging_video_lectures/merging_video_lectures.md} +0 -0
- /data/doc/{Readme_for_the_cut_audio_component.md → readme_for_the_cut_audio_component/Readme_for_the_cut_audio_component.md} +0 -0
- /data/lib/multimedia_paradise/yaml/{audio_formats.yml → audio_formats/audio_formats.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{image_formats.yml → image_formats/image_formats.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{lyrics.yml → lyrics/lyrics.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{music_genres.yml → music_genres/music_genres.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{song_tags.yml → song_tags/song_tags.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{use_this_video_player.yml → use_this_video_player/use_this_video_player.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{video_encoding_settings.yml → video_encoding_settings/video_encoding_settings.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{video_filter_aliases.yml → video_filter_aliases/video_filter_aliases.yml} +0 -0
@@ -29,6 +29,7 @@
|
|
29
29
|
#
|
30
30
|
# =========================================================================== #
|
31
31
|
# require 'multimedia_paradise/audio/playlist/playlist.rb'
|
32
|
+
# MultimediaParadise.playlist(ARGV)
|
32
33
|
# =========================================================================== #
|
33
34
|
require 'multimedia_paradise/audio/base.rb'
|
34
35
|
|
@@ -79,7 +80,7 @@ class Playlist < MultimediaParadise::AudioBase # === MultimediaParadise::Playlis
|
|
79
80
|
# === :be_quiet
|
80
81
|
# ===================================================================== #
|
81
82
|
when :be_quiet
|
82
|
-
|
83
|
+
set_be_quiet
|
83
84
|
end
|
84
85
|
end
|
85
86
|
run if run_already
|
@@ -91,23 +92,24 @@ class Playlist < MultimediaParadise::AudioBase # === MultimediaParadise::Playlis
|
|
91
92
|
def reset
|
92
93
|
super()
|
93
94
|
# ======================================================================= #
|
94
|
-
# ===
|
95
|
+
# === :be_verbose
|
95
96
|
# ======================================================================= #
|
96
97
|
set_be_verbose
|
97
|
-
reset_the_internal_hash
|
98
98
|
infer_the_namespace
|
99
99
|
# ======================================================================= #
|
100
|
-
# === :
|
100
|
+
# === :playlist_file
|
101
|
+
#
|
102
|
+
# Designate where the playlist-file can be found.
|
101
103
|
# ======================================================================= #
|
102
|
-
@internal_hash[:
|
104
|
+
@internal_hash[:playlist_file] = PLAYLIST_FILE
|
103
105
|
# ======================================================================= #
|
104
|
-
# ===
|
106
|
+
# === :user_defined_multimedia_player
|
105
107
|
# ======================================================================= #
|
106
|
-
@
|
108
|
+
@internal_hash[:user_defined_multimedia_player] = nil
|
107
109
|
# ======================================================================= #
|
108
|
-
# ===
|
110
|
+
# === :report_namespace
|
109
111
|
# ======================================================================= #
|
110
|
-
@report_namespace = REPORT_NAMESPACE
|
112
|
+
@internal_hash[:report_namespace] = REPORT_NAMESPACE
|
111
113
|
# ======================================================================= #
|
112
114
|
# === @playlist
|
113
115
|
#
|
@@ -241,15 +243,13 @@ class Playlist < MultimediaParadise::AudioBase # === MultimediaParadise::Playlis
|
|
241
243
|
#
|
242
244
|
# Where to store the playlist. On my system this will be different
|
243
245
|
# than on other people's systems.
|
244
|
-
#
|
245
|
-
# bl /Depot/Information/playlist.yml
|
246
246
|
# ========================================================================= #
|
247
247
|
if ENV['IS_ROEBE'].to_i == 1 # On my home system, I will use another playlist.
|
248
|
-
_ = "#{ENV['RUBY_SRC']}/multimedia_paradise/lib/multimedia_paradise/yaml/playlist.yml"
|
248
|
+
_ = "#{ENV['RUBY_SRC']}/multimedia_paradise/lib/multimedia_paradise/yaml/playlist/playlist.yml"
|
249
249
|
if File.exist? _
|
250
|
-
PLAYLIST_FILE = _ # cat $RSRC/multimedia_paradise/lib/multimedia_paradise/yaml/playlist.yml
|
250
|
+
PLAYLIST_FILE = _ # cat $RSRC/multimedia_paradise/lib/multimedia_paradise/yaml/playlist/playlist.yml
|
251
251
|
else
|
252
|
-
_ = MultimediaParadise
|
252
|
+
_ = MultimediaParadise::FILE_PLAYLIST
|
253
253
|
if File.exist? _
|
254
254
|
PLAYLIST_FILE = _
|
255
255
|
else
|
@@ -279,6 +279,27 @@ class Playlist < MultimediaParadise::AudioBase # === MultimediaParadise::Playlis
|
|
279
279
|
else
|
280
280
|
case i # case tag
|
281
281
|
# ===================================================================== #
|
282
|
+
# === playlist 5
|
283
|
+
#
|
284
|
+
# This handles numbered input. The specified number will be played
|
285
|
+
# from the playlist.
|
286
|
+
#
|
287
|
+
# Usage example:
|
288
|
+
#
|
289
|
+
# playlist 32
|
290
|
+
#
|
291
|
+
# ===================================================================== #
|
292
|
+
when /^(\d+)$/
|
293
|
+
_ = $1.to_s.dup.to_i # Work on a copy past this point.
|
294
|
+
_ = at?(_)
|
295
|
+
add_to_play_these_songs(_)
|
296
|
+
# ===================================================================== #
|
297
|
+
# === playlist --stored-where?
|
298
|
+
# ===================================================================== #
|
299
|
+
when /^-?-?stored(-|_)?where\??$/i
|
300
|
+
e sfancy(PLAYLIST_FILE)+rev
|
301
|
+
exit
|
302
|
+
# ===================================================================== #
|
282
303
|
# === playlist --random=15
|
283
304
|
# ===================================================================== #
|
284
305
|
when /^-?-?random=(\d+)$/i
|
@@ -381,7 +402,7 @@ class Playlist < MultimediaParadise::AudioBase # === MultimediaParadise::Playlis
|
|
381
402
|
# ===================================================================== #
|
382
403
|
when /^-?-?last=(\d+)$/i
|
383
404
|
_ = $1.to_s.dup
|
384
|
-
|
405
|
+
opne rev+'Now playing the last '+steelblue(_.size.to_s)+' songs.'
|
385
406
|
play_song(:last_songs, _) # Just play the last song.
|
386
407
|
exit
|
387
408
|
# ===================================================================== #
|
@@ -430,21 +451,6 @@ class Playlist < MultimediaParadise::AudioBase # === MultimediaParadise::Playlis
|
|
430
451
|
when /\+/ # We will catch all '+' characters here.
|
431
452
|
add_this_entry(i)
|
432
453
|
# ===================================================================== #
|
433
|
-
# === playlist 5
|
434
|
-
#
|
435
|
-
# This handles numbered input. The specified number will be played
|
436
|
-
# from the playlist.
|
437
|
-
#
|
438
|
-
# Usage example:
|
439
|
-
#
|
440
|
-
# playlist 32
|
441
|
-
#
|
442
|
-
# ===================================================================== #
|
443
|
-
when /^(\d+)$/
|
444
|
-
_ = $1.to_s.dup.to_i # Work on a copy past this point.
|
445
|
-
_ = at?(_)
|
446
|
-
add_to_play_these_songs(_)
|
447
|
-
# ===================================================================== #
|
448
454
|
# === playlist 5,7
|
449
455
|
#
|
450
456
|
# This handles numbered input separated by ',' tokens. The user
|
@@ -836,7 +842,7 @@ class Playlist < MultimediaParadise::AudioBase # === MultimediaParadise::Playlis
|
|
836
842
|
end
|
837
843
|
}
|
838
844
|
i.flatten!
|
839
|
-
|
845
|
+
set_commandline_arguments(i)
|
840
846
|
end
|
841
847
|
|
842
848
|
# ========================================================================= #
|
@@ -857,9 +863,9 @@ class Playlist < MultimediaParadise::AudioBase # === MultimediaParadise::Playlis
|
|
857
863
|
entry_one = @playlist[one.to_i - 1]
|
858
864
|
entry_two = @playlist[two.to_i - 1]
|
859
865
|
opne rev+'We will next exchange two positions in our playlist.'
|
860
|
-
opne
|
861
|
-
|
862
|
-
opne
|
866
|
+
opne "#{rev}Entry "+simp(one.to_s)+' ('+sfile(entry_one)+') with '+
|
867
|
+
"#{rev}Entry "+simp(two.to_s)+' ('+sfile(entry_two)+').'
|
868
|
+
opne "#{rev}The new playlist will also be shown."
|
863
869
|
# ======================================================================= #
|
864
870
|
# Here, we do the manipulation.
|
865
871
|
# ======================================================================= #
|
@@ -867,11 +873,10 @@ class Playlist < MultimediaParadise::AudioBase # === MultimediaParadise::Playlis
|
|
867
873
|
@playlist[two.to_i - 1] = entry_one
|
868
874
|
show_playlist # Show it here to see that we did a change.
|
869
875
|
save_dataset
|
870
|
-
opne
|
871
|
-
steelblue(one.to_s)+
|
872
|
-
steelblue(two.to_s)+
|
873
|
-
'
|
874
|
-
gold('\o/')
|
876
|
+
opne "#{rev}Exchange operation between "+
|
877
|
+
steelblue(one.to_s)+"#{rev} and "+
|
878
|
+
steelblue(two.to_s)+"#{rev} finished! "+
|
879
|
+
gold('\o/')+rev
|
875
880
|
end
|
876
881
|
|
877
882
|
# ========================================================================= #
|
@@ -923,11 +928,13 @@ class Playlist < MultimediaParadise::AudioBase # === MultimediaParadise::Playlis
|
|
923
928
|
end
|
924
929
|
|
925
930
|
# ========================================================================= #
|
926
|
-
# ===
|
931
|
+
# === store_where?
|
927
932
|
# ========================================================================= #
|
928
|
-
def
|
929
|
-
@playlist_file
|
930
|
-
end; alias
|
933
|
+
def store_where?
|
934
|
+
@internal_hash[:playlist_file]
|
935
|
+
end; alias playlist_location? store_where? # === playlist_location?
|
936
|
+
alias yaml_file? store_where? # === yaml_file?
|
937
|
+
alias playlist_file? store_where? # === playlist_file?
|
931
938
|
|
932
939
|
# ========================================================================= #
|
933
940
|
# === return_entry_from_this_position (return tag)
|
@@ -967,18 +974,11 @@ class Playlist < MultimediaParadise::AudioBase # === MultimediaParadise::Playlis
|
|
967
974
|
end
|
968
975
|
end
|
969
976
|
|
970
|
-
# ========================================================================= #
|
971
|
-
# === store_where?
|
972
|
-
# ========================================================================= #
|
973
|
-
def store_where?
|
974
|
-
@playlist_file
|
975
|
-
end; alias playlist_location? store_where? # === playlist_location?
|
976
|
-
|
977
977
|
# ========================================================================= #
|
978
978
|
# === do_report_the_namespace
|
979
979
|
# ========================================================================= #
|
980
980
|
def do_report_the_namespace
|
981
|
-
@report_namespace = true
|
981
|
+
@internal_hash[:report_namespace] = true
|
982
982
|
end
|
983
983
|
|
984
984
|
# ========================================================================= #
|
@@ -997,7 +997,7 @@ class Playlist < MultimediaParadise::AudioBase # === MultimediaParadise::Playlis
|
|
997
997
|
# This method will purge non-existing files from the playlist.
|
998
998
|
# ========================================================================= #
|
999
999
|
def purge_non_existing_files_from_playlist
|
1000
|
-
opne
|
1000
|
+
opne "#{rev}Now purging non-existing files from the playlist."
|
1001
1001
|
new_array = []
|
1002
1002
|
# ======================================================================= #
|
1003
1003
|
# Next, make sure that the dataset was properly loaded.
|
@@ -1067,9 +1067,9 @@ class Playlist < MultimediaParadise::AudioBase # === MultimediaParadise::Playlis
|
|
1067
1067
|
# === report_where_to_find_the_yaml_file
|
1068
1068
|
# ========================================================================= #
|
1069
1069
|
def report_where_to_find_the_yaml_file
|
1070
|
-
opne
|
1070
|
+
opne "#{rev}The yaml file can be found here:"
|
1071
1071
|
e
|
1072
|
-
e
|
1072
|
+
e "#{rev} `#{sfile(yaml_file?)}#{rev}`"
|
1073
1073
|
e
|
1074
1074
|
end
|
1075
1075
|
|
@@ -1078,7 +1078,7 @@ class Playlist < MultimediaParadise::AudioBase # === MultimediaParadise::Playlis
|
|
1078
1078
|
# ========================================================================= #
|
1079
1079
|
def purge_the_playlist
|
1080
1080
|
save_yaml_dataset(:reset)
|
1081
|
-
opne
|
1081
|
+
opne "#{rev}The playlist was emptied."
|
1082
1082
|
end
|
1083
1083
|
|
1084
1084
|
# ========================================================================= #
|
@@ -1242,7 +1242,14 @@ class Playlist < MultimediaParadise::AudioBase # === MultimediaParadise::Playlis
|
|
1242
1242
|
# === opnn
|
1243
1243
|
# ========================================================================= #
|
1244
1244
|
def opnn
|
1245
|
-
super(namespace?) if
|
1245
|
+
super(namespace?) if report_namespace?
|
1246
|
+
end
|
1247
|
+
|
1248
|
+
# ========================================================================= #
|
1249
|
+
# === report_namespace?
|
1250
|
+
# ========================================================================= #
|
1251
|
+
def report_namespace?
|
1252
|
+
@internal_hash[:report_namespace]
|
1246
1253
|
end
|
1247
1254
|
|
1248
1255
|
# ========================================================================= #
|
@@ -1327,7 +1334,9 @@ class Playlist < MultimediaParadise::AudioBase # === MultimediaParadise::Playlis
|
|
1327
1334
|
# This method will populate the instance variable @playlist with the
|
1328
1335
|
# proper dataset.
|
1329
1336
|
# ========================================================================= #
|
1330
|
-
def load_yaml_dataset(
|
1337
|
+
def load_yaml_dataset(
|
1338
|
+
i = store_where?
|
1339
|
+
)
|
1331
1340
|
if File.exist? i
|
1332
1341
|
@playlist = YAML.load_file(i)
|
1333
1342
|
end
|
@@ -1444,72 +1453,74 @@ class Playlist < MultimediaParadise::AudioBase # === MultimediaParadise::Playlis
|
|
1444
1453
|
opne
|
1445
1454
|
opne mediumslateblue('The documented options for this class are as follows:')
|
1446
1455
|
opne
|
1447
|
-
|
1448
|
-
|
1449
|
-
|
1450
|
-
|
1451
|
-
|
1452
|
-
|
1453
|
-
|
1454
|
-
|
1455
|
-
|
1456
|
-
|
1457
|
-
|
1458
|
-
|
1459
|
-
|
1460
|
-
|
1461
|
-
|
1462
|
-
|
1463
|
-
|
1464
|
-
|
1465
|
-
|
1466
|
-
|
1467
|
-
|
1468
|
-
|
1469
|
-
|
1470
|
-
|
1471
|
-
|
1472
|
-
|
1473
|
-
|
1474
|
-
|
1475
|
-
|
1476
|
-
|
1477
|
-
|
1478
|
-
|
1479
|
-
|
1480
|
-
|
1481
|
-
|
1482
|
-
|
1483
|
-
|
1484
|
-
|
1485
|
-
|
1486
|
-
|
1487
|
-
|
1488
|
-
|
1489
|
-
|
1490
|
-
|
1491
|
-
|
1492
|
-
|
1493
|
-
|
1494
|
-
|
1495
|
-
|
1496
|
-
|
1497
|
-
|
1498
|
-
|
1499
|
-
|
1500
|
-
|
1501
|
-
|
1502
|
-
|
1503
|
-
|
1504
|
-
|
1505
|
-
|
1456
|
+
opnecomment ' - # delete the last entry; '\
|
1457
|
+
'this also works via --delete-last-entry'
|
1458
|
+
opnecomment ' --batch # process all audio files from the '\
|
1459
|
+
'current directory'
|
1460
|
+
opnecomment ' --generate # generate a .m3u playlist'
|
1461
|
+
opnecomment ' --show_playlist # show the playlist '\
|
1462
|
+
'(this is the default - SHOW is an alias)'
|
1463
|
+
opnecomment ' --play # play the files in the playlist'
|
1464
|
+
opnecomment ' --play_shuffle # shuffle, then play all '\
|
1465
|
+
'files in the playlist'
|
1466
|
+
opnecomment ' --delete 38 # remove the entry at '\
|
1467
|
+
'position 38 from our playlist'
|
1468
|
+
opnecomment ' --remove=38 # this works the same as ^^^, '\
|
1469
|
+
'merely uses a = instead'
|
1470
|
+
opnecomment ' --purge-everything # empty the playlist. That '\
|
1471
|
+
'way you can start to populate a new one, from scratch.'
|
1472
|
+
opnecomment ' --reshuffle # permanently reshuffle '\
|
1473
|
+
'the playlist - the songs will have different '\
|
1474
|
+
'entries as a result'
|
1475
|
+
opnecomment ' --random # play ONE random song'
|
1476
|
+
opnecomment ' --random=25 # play 25 random '\
|
1477
|
+
'songs (or whatever other value is passed here)'
|
1478
|
+
opnecomment ' --reverse-play # play in reverse, '\
|
1479
|
+
'from last to first song'
|
1480
|
+
opnecomment ' --reverse # ^^^ a convenience alias '\
|
1481
|
+
'to the above'
|
1482
|
+
opnecomment ' --trance # play all (local) trance songs'
|
1483
|
+
opnecomment ' --last-two # play the last '\
|
1484
|
+
'two songs. Works as well with other english language'
|
1485
|
+
opnecomment ' # words, such as three '\
|
1486
|
+
'and four and so on'
|
1487
|
+
opnecomment ' number1 number 2 # exchange these two '\
|
1488
|
+
'entries in the playlist with one another such'
|
1489
|
+
opnecomment ' # as: playlist '\
|
1490
|
+
'5 6 would swap position'
|
1491
|
+
opnecomment ' --exchange=114,113 # the same as '\
|
1492
|
+
'^^^ above, essentially'
|
1493
|
+
opnecomment ' add <NUMBER/NAME> # add the file '\
|
1494
|
+
'at position NUMBER or the FILENAME to the playlist'
|
1495
|
+
opnecomment ' eurodance # this would play all '\
|
1496
|
+
'eurodance-songs. The songs must be available'
|
1497
|
+
opnecomment ' # locally though, '\
|
1498
|
+
'where the AUDIO_DIR constant points at.'
|
1499
|
+
opnecomment ' playlist --genres # show all '\
|
1500
|
+
'registered music-genres (in the '\
|
1501
|
+
'multimedia_paradise gem)'
|
1502
|
+
opnecomment ' playlist --only-names # show only '\
|
1503
|
+
'the names of the songs, not the full path'
|
1504
|
+
opnecomment ' playlist 88,87,86,85,84,83 # play songs '\
|
1505
|
+
'at these positions from the playlist'
|
1506
|
+
opnecomment ' playlist 88 87 86 85 84 83 # same as ^^^ '\
|
1507
|
+
'above, just without ","'
|
1508
|
+
opnecomment ' playlist "95 -> 94" # exchange these '\
|
1509
|
+
'two positions with one another e. g. '\
|
1510
|
+
'position 95 to 94 and vice versa'
|
1511
|
+
opnecomment ' playlist --use-mplayer # specifically '\
|
1512
|
+
'use mplayer for playing audio files'
|
1513
|
+
opnecomment ' playlist --use-mpv # specifically '\
|
1514
|
+
'use mpv for playing audio files'
|
1515
|
+
opnecomment ' playlist --stored-where? # tell us '\
|
1516
|
+
'where the main .yml file is stored'
|
1506
1517
|
if is_on_roebe?
|
1507
1518
|
# ===================================================================== #
|
1508
1519
|
# Display extra options on roebe-systems only.
|
1509
1520
|
# ===================================================================== #
|
1510
1521
|
e
|
1511
|
-
|
1512
|
-
|
1522
|
+
opnecomment ' playlist --tales-from-the-crypt # generate '\
|
1523
|
+
'tales-from-the-crypt .m3u playlist'
|
1513
1524
|
e
|
1514
1525
|
end
|
1515
1526
|
e
|
@@ -1573,7 +1584,7 @@ class Playlist < MultimediaParadise::AudioBase # === MultimediaParadise::Playlis
|
|
1573
1584
|
# in use.
|
1574
1585
|
# ========================================================================= #
|
1575
1586
|
def show_playlist(
|
1576
|
-
be_verbose =
|
1587
|
+
be_verbose = be_verbose?
|
1577
1588
|
)
|
1578
1589
|
if be_verbose
|
1579
1590
|
_ = playlist?
|
@@ -1600,6 +1611,20 @@ class Playlist < MultimediaParadise::AudioBase # === MultimediaParadise::Playlis
|
|
1600
1611
|
}; e
|
1601
1612
|
end
|
1602
1613
|
end
|
1614
|
+
end; alias fancy_display_the_playlist show_playlist # === fancy_display_the_playlist
|
1615
|
+
|
1616
|
+
# ========================================================================= #
|
1617
|
+
# === array_these_songs_will_be_played?
|
1618
|
+
# ========================================================================= #
|
1619
|
+
def array_these_songs_will_be_played?
|
1620
|
+
@array_these_songs_will_be_played
|
1621
|
+
end
|
1622
|
+
|
1623
|
+
# ========================================================================= #
|
1624
|
+
# === no_song_was_found_as_part_of_the_playlist
|
1625
|
+
# ========================================================================= #
|
1626
|
+
def no_song_was_found_as_part_of_the_playlist
|
1627
|
+
opne "#{rev}No song was found as part of the playlist."
|
1603
1628
|
end
|
1604
1629
|
|
1605
1630
|
# ========================================================================= #
|
@@ -1608,9 +1633,12 @@ class Playlist < MultimediaParadise::AudioBase # === MultimediaParadise::Playlis
|
|
1608
1633
|
def run
|
1609
1634
|
sanitize_the_commandline
|
1610
1635
|
menu
|
1611
|
-
|
1612
|
-
|
1613
|
-
|
1636
|
+
array = array_these_songs_will_be_played?
|
1637
|
+
if array.empty?
|
1638
|
+
fancy_display_the_playlist
|
1639
|
+
else
|
1640
|
+
verbose_play_these_songs(array)
|
1641
|
+
end
|
1614
1642
|
end
|
1615
1643
|
|
1616
1644
|
# ========================================================================= #
|
@@ -1629,8 +1657,20 @@ def self.add_this_song_to_the_playlist(i)
|
|
1629
1657
|
::MultimediaParadise::Playlist.add(i)
|
1630
1658
|
end
|
1631
1659
|
|
1660
|
+
# =========================================================================== #
|
1661
|
+
# === MultimediaParadise.playlist
|
1662
|
+
# =========================================================================== #
|
1663
|
+
def self.playlist(arg1 = ARGV[0], arg2 = ARGV[1])
|
1664
|
+
MultimediaParadise::Playlist.new(arg1, arg2)
|
1665
|
+
end
|
1666
|
+
|
1632
1667
|
end
|
1633
1668
|
|
1634
1669
|
if __FILE__ == $PROGRAM_NAME
|
1635
|
-
|
1670
|
+
alias e puts
|
1671
|
+
playlist = MultimediaParadise::Playlist.new(ARGV[0], ARGV[1])
|
1672
|
+
e 'Debugging:'
|
1673
|
+
e
|
1674
|
+
pp playlist
|
1675
|
+
e
|
1636
1676
|
end # playlist
|
@@ -2,18 +2,23 @@
|
|
2
2
|
# Encoding: UTF-8
|
3
3
|
# frozen_string_literal: true
|
4
4
|
# =========================================================================== #
|
5
|
-
# === MultimediaParadise::RemoveAudio
|
5
|
+
# === MultimediaParadise::Audio::RemoveAudio
|
6
6
|
#
|
7
7
|
# This small module can be used to remove audio from a given file.
|
8
8
|
#
|
9
9
|
# Specific usage example:
|
10
10
|
#
|
11
|
-
# MultimediaParadise::RemoveAudio[]
|
11
|
+
# MultimediaParadise::Audio::RemoveAudio[]
|
12
12
|
#
|
13
13
|
# =========================================================================== #
|
14
|
+
# require 'multimedia_paradise/audio/remove_audio.rb'
|
15
|
+
# MultimediaParadise.remove_audio(ARGV)
|
16
|
+
# =========================================================================== #
|
14
17
|
module MultimediaParadise
|
15
18
|
|
16
|
-
module
|
19
|
+
module Audio
|
20
|
+
|
21
|
+
module RemoveAudio # == MultimediaParadise::Audio::RemoveAudio[]
|
17
22
|
|
18
23
|
# ========================================================================= #
|
19
24
|
# === remove_audio_from
|
@@ -73,7 +78,7 @@ module RemoveAudio # == MultimediaParadise::RemoveAudio[]
|
|
73
78
|
remove_audio_from(i)
|
74
79
|
end
|
75
80
|
|
76
|
-
end
|
81
|
+
end; end
|
77
82
|
|
78
83
|
# =========================================================================== #
|
79
84
|
# === MultimediaParadise.remove_audio
|
@@ -88,11 +93,11 @@ end
|
|
88
93
|
#
|
89
94
|
# =========================================================================== #
|
90
95
|
def self.remove_audio(i, &block)
|
91
|
-
RemoveAudio.remove_audio_from(i, &block)
|
96
|
+
MultimediaParadise::Audio::RemoveAudio.remove_audio_from(i, &block)
|
92
97
|
end
|
93
98
|
|
94
99
|
end
|
95
100
|
|
96
101
|
if __FILE__ == $PROGRAM_NAME
|
97
|
-
MultimediaParadise::RemoveAudio[ARGV]
|
102
|
+
MultimediaParadise::Audio::RemoveAudio[ARGV]
|
98
103
|
end # remove_audio
|
@@ -15,7 +15,6 @@
|
|
15
15
|
# MultimediaParadise.remove_last_second(ARGV)
|
16
16
|
# =========================================================================== #
|
17
17
|
require 'multimedia_paradise/audio/base.rb'
|
18
|
-
require 'multimedia_paradise/audio/file_duration/file_duration.rb'
|
19
18
|
|
20
19
|
module MultimediaParadise
|
21
20
|
|
@@ -47,7 +46,7 @@ class RemoveLastSecond < ::MultimediaParadise::AudioBase
|
|
47
46
|
begin
|
48
47
|
require 'roebe/classes/twentyfour_hours_notation.rb'
|
49
48
|
rescue LoadError; end
|
50
|
-
n_seconds_new =
|
49
|
+
n_seconds_new = action(:duration?, i) - 1
|
51
50
|
return Roebe::TwentyfourHoursNotation[n_seconds_new]
|
52
51
|
end
|
53
52
|
|
@@ -80,4 +79,4 @@ end
|
|
80
79
|
|
81
80
|
if __FILE__ == $PROGRAM_NAME
|
82
81
|
MultimediaParadise::RemoveLastSecond.new(ARGV)
|
83
|
-
end #
|
82
|
+
end # removelastsecond
|
@@ -2,14 +2,14 @@
|
|
2
2
|
# Encoding: UTF-8
|
3
3
|
# frozen_string_literal: true
|
4
4
|
# =========================================================================== #
|
5
|
-
# === MultimediaParadise::ReportMissingId
|
5
|
+
# === MultimediaParadise::Audio::ReportMissingId
|
6
6
|
#
|
7
7
|
# This class will iterate over the given .mp3 files and report missing
|
8
8
|
# ids, such as a missing :genre or :comment entry.
|
9
9
|
#
|
10
10
|
# Usage example:
|
11
11
|
#
|
12
|
-
# MultimediaParadise::ReportMissingId.new(ARGV)
|
12
|
+
# MultimediaParadise::Audio::ReportMissingId.new(ARGV)
|
13
13
|
#
|
14
14
|
# =========================================================================== #
|
15
15
|
# require 'multimedia_paradise/audio/report_missing_id.rb'
|
@@ -19,7 +19,9 @@ require 'multimedia_paradise/audio/base.rb'
|
|
19
19
|
|
20
20
|
module MultimediaParadise
|
21
21
|
|
22
|
-
|
22
|
+
module Audio
|
23
|
+
|
24
|
+
class ReportMissingId < MultimediaParadise::AudioBase # === MultimediaParadise::Audio::ReportMissingId
|
23
25
|
|
24
26
|
require 'multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb'
|
25
27
|
|
@@ -64,7 +66,7 @@ class ReportMissingId < MultimediaParadise::AudioBase # === MultimediaParadise::
|
|
64
66
|
def work_on_these_files(i)
|
65
67
|
problem_encountered = 0
|
66
68
|
i.each {|this_audio_file|
|
67
|
-
audio_tag_reader = MultimediaParadise::AudioTagReader.new(this_audio_file) { :do_not_report_anything }
|
69
|
+
audio_tag_reader = MultimediaParadise::Audio::AudioTagReader.new(this_audio_file) { :do_not_report_anything }
|
68
70
|
# ===================================================================== #
|
69
71
|
# Next, we will check against the main Array.
|
70
72
|
# ===================================================================== #
|
@@ -73,16 +75,24 @@ class ReportMissingId < MultimediaParadise::AudioBase # === MultimediaParadise::
|
|
73
75
|
(this_entry.to_s.downcase+'?').to_sym
|
74
76
|
)
|
75
77
|
case this_entry
|
78
|
+
# =================================================================== #
|
79
|
+
# === :Artist
|
80
|
+
# =================================================================== #
|
76
81
|
when :Artist, :artist
|
77
82
|
if result.to_s.empty?
|
78
83
|
problem_encountered += 1
|
79
|
-
e problem_encountered.to_s
|
84
|
+
e steelblue(problem_encountered.to_s)+
|
85
|
+
rev+') No artist entry for: '+sfile(this_audio_file)
|
80
86
|
end
|
81
|
-
|
87
|
+
# =================================================================== #
|
88
|
+
# === :Year
|
89
|
+
# =================================================================== #
|
90
|
+
when :Year, :year
|
82
91
|
if result.to_s == '0'
|
83
92
|
problem_encountered += 1
|
84
|
-
e problem_encountered.to_s+
|
85
|
-
'
|
93
|
+
e steelblue(problem_encountered.to_s)+
|
94
|
+
rev+') '\
|
95
|
+
'Faulty year entry for '+sfile(this_audio_file)+rev+'; '\
|
86
96
|
'the value was 0.'
|
87
97
|
e tomato(
|
88
98
|
' This means that no year has been registered for this audio file.'
|
@@ -111,21 +121,21 @@ class ReportMissingId < MultimediaParadise::AudioBase # === MultimediaParadise::
|
|
111
121
|
# ========================================================================= #
|
112
122
|
# === MultimediaParadise::ReportMissingId[]
|
113
123
|
# ========================================================================= #
|
114
|
-
def self.[](i =
|
124
|
+
def self.[](i = ARGV)
|
115
125
|
new(i)
|
116
126
|
end
|
117
127
|
|
118
|
-
end
|
128
|
+
end; end
|
119
129
|
|
120
130
|
# =========================================================================== #
|
121
131
|
# === MultimediaParadise.report_missing_id
|
122
132
|
# =========================================================================== #
|
123
133
|
def self.report_missing_id(i = :default_playlist)
|
124
|
-
::MultimediaParadise::ReportMissingId.new(i)
|
134
|
+
::MultimediaParadise::Audio::ReportMissingId.new(i)
|
125
135
|
end; self.instance_eval { alias report_missing_ids report_missing_id } # === MultimediaParadise.report_missing_ids
|
126
136
|
|
127
137
|
end
|
128
138
|
|
129
139
|
if __FILE__ == $PROGRAM_NAME
|
130
|
-
MultimediaParadise::ReportMissingId.new(ARGV)
|
140
|
+
MultimediaParadise::Audio::ReportMissingId.new(ARGV)
|
131
141
|
end # reportmissingid /home/x/songs/
|