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.
Files changed (218) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +99 -77
  3. data/bin/audio_player +1 -1
  4. data/bin/extract_images_from_this_video_file +1 -1
  5. data/bin/loop_this_video +1 -1
  6. data/bin/merge_avi_files +1 -1
  7. data/bin/merge_mp3 +1 -1
  8. data/bin/mp3_to_opus +1 -1
  9. data/bin/mpg_to_mp4 +1 -1
  10. data/bin/multimedia_paradise +1 -1
  11. data/bin/to_aiff +2 -5
  12. data/bin/to_flac +7 -0
  13. data/bin/to_mp3 +8 -0
  14. data/bin/to_mp4 +1 -1
  15. data/bin/to_ogg +7 -0
  16. data/bin/verbose_analyse_this_mp3_file_for_id3_tags +1 -1
  17. data/bin/video_codec +1 -1
  18. data/bin/video_thumbnail +1 -1
  19. data/bin/video_to_images +1 -1
  20. data/doc/README.gen +88 -51
  21. data/doc/{CHANGELOG.md → changelog/changelog.md} +8 -6
  22. data/doc/{LINKS.md → links/links.md} +2 -2
  23. data/doc/{MOTIVATION_FOR_THIS_PROJECT.md → motivation_for_the_multimedia_paradise_project/motivation_for_the_multimedia_paradise_project.md} +5 -5
  24. data/doc/todo/todo_for_the_multimedia_paradise_project.md +79 -93
  25. data/lib/multimedia_paradise/actions/actions.rb +224 -0
  26. data/lib/multimedia_paradise/audio/audio_player/audio_player.rb +61 -64
  27. data/lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb +17 -8
  28. data/lib/multimedia_paradise/audio/base.rb +0 -5
  29. data/lib/multimedia_paradise/audio/compress.rb +8 -5
  30. data/lib/multimedia_paradise/audio/create_m3u_playlist.rb +7 -11
  31. data/lib/multimedia_paradise/audio/extract_audio/constants.rb +0 -37
  32. data/lib/multimedia_paradise/audio/extract_audio/extract_audio.rb +90 -68
  33. data/lib/multimedia_paradise/audio/file_duration/file_duration.rb +134 -80
  34. data/lib/multimedia_paradise/audio/genres/boogie.rb +1 -6
  35. data/lib/multimedia_paradise/audio/genres/concerts.rb +1 -6
  36. data/lib/multimedia_paradise/audio/genres/constants.rb +1 -1
  37. data/lib/multimedia_paradise/audio/genres/eurodance.rb +1 -6
  38. data/lib/multimedia_paradise/audio/genres/genre.rb +36 -33
  39. data/lib/multimedia_paradise/audio/genres/hip_hop.rb +1 -6
  40. data/lib/multimedia_paradise/audio/genres/italian_songs.rb +1 -6
  41. data/lib/multimedia_paradise/audio/genres/the_1980s.rb +1 -6
  42. data/lib/multimedia_paradise/audio/genres/trance.rb +4 -7
  43. data/lib/multimedia_paradise/audio/lyrics_fetcher.rb +27 -22
  44. data/lib/multimedia_paradise/audio/merge_audio_files.rb +18 -11
  45. data/lib/multimedia_paradise/audio/modify_year_of_audio_file.rb +23 -11
  46. data/lib/multimedia_paradise/audio/n_audio_songs.rb +3 -2
  47. data/lib/multimedia_paradise/audio/play_all_audio_files.rb +41 -16
  48. data/lib/multimedia_paradise/audio/playlist/playlist.rb +163 -123
  49. data/lib/multimedia_paradise/audio/remove_audio.rb +11 -6
  50. data/lib/multimedia_paradise/audio/remove_last_second.rb +2 -3
  51. data/lib/multimedia_paradise/audio/report_missing_id.rb +22 -12
  52. data/lib/multimedia_paradise/audio/streamripper/streamripper_wrapper.rb +7 -5
  53. data/lib/multimedia_paradise/audio/to_mp3.rb +7 -5
  54. data/lib/multimedia_paradise/audio/to_ogg.rb +3 -1
  55. data/lib/multimedia_paradise/audio/wav_to_mp3.rb +5 -5
  56. data/lib/multimedia_paradise/base/base.rb +854 -15
  57. data/lib/multimedia_paradise/base/colours.rb +28 -31
  58. data/lib/multimedia_paradise/base/{commandline_arguments.rb → commandline_arguments_module/commandline_arguments_module.rb} +12 -9
  59. data/lib/multimedia_paradise/colours/colours.rb +4 -1
  60. data/lib/multimedia_paradise/commandline/{menu.rb → commandline.rb} +19 -16
  61. data/lib/multimedia_paradise/constants/constants.rb +504 -14
  62. data/lib/multimedia_paradise/constants/web_constants.rb +2 -4
  63. data/lib/multimedia_paradise/gui/gui_base.rb +2 -2
  64. data/lib/multimedia_paradise/gui/libui/lyrics/lyrics.rb +1 -1
  65. data/lib/multimedia_paradise/gui/libui/simple_play_widget/simple_play_widget.rb +1 -1
  66. data/lib/multimedia_paradise/gui/libui/video_player/video_player.rb +1 -1
  67. data/lib/multimedia_paradise/gui/libui/youtube_channels/youtube_channels.rb +1 -1
  68. data/lib/multimedia_paradise/gui/shared_code/multimedia_converter/multimedia_converter_module.rb +0 -478
  69. data/lib/multimedia_paradise/gui/shared_code/playlist/playlist_module.rb +94 -41
  70. data/lib/multimedia_paradise/gui/shared_code/simple_play_widget/simple_play_widget_module.rb +0 -257
  71. data/lib/multimedia_paradise/gui/universal_widgets/change_metadata_widget/change_metadata_widget.rb +2 -2
  72. data/lib/multimedia_paradise/gui/universal_widgets/information_about_a_mp3_file/information_about_a_mp3_file.rb +1 -1
  73. data/lib/multimedia_paradise/gui/universal_widgets/lyrics/lyrics.rb +1 -1
  74. data/lib/multimedia_paradise/gui/universal_widgets/multimedia_converter/multimedia_converter.rb +589 -0
  75. data/lib/multimedia_paradise/gui/universal_widgets/playlist/playlist.rb +197 -0
  76. data/lib/multimedia_paradise/gui/universal_widgets/radio/radio.rb +1 -1
  77. data/lib/multimedia_paradise/gui/{gtk2 → universal_widgets}/simple_play_widget/README.md +1 -1
  78. data/lib/multimedia_paradise/gui/universal_widgets/simple_play_widget/simple_play_widget.rb +404 -0
  79. data/lib/multimedia_paradise/gui/universal_widgets/tag_mp3_files/tag_mp3_files.rb +3 -6
  80. data/lib/multimedia_paradise/java/Playlist.class +0 -0
  81. data/lib/multimedia_paradise/java/Playlist.java +198 -0
  82. data/lib/multimedia_paradise/multimedia/analyse_multimedia_file.rb +21 -19
  83. data/lib/multimedia_paradise/multimedia/avisynth/avisynth_code.avs +441 -442
  84. data/lib/multimedia_paradise/multimedia/base.rb +0 -18
  85. data/lib/multimedia_paradise/multimedia/chord.rb +1 -1
  86. data/lib/multimedia_paradise/multimedia/cut_multimedia/cut_multimedia.rb +7 -5
  87. data/lib/multimedia_paradise/multimedia/cut_multimedia/evaluate_from_this_file.rb +2 -2
  88. data/lib/multimedia_paradise/multimedia/interactive_shell.rb +22 -3
  89. data/lib/multimedia_paradise/multimedia/merge_multimedia.rb +4 -3
  90. data/lib/multimedia_paradise/multimedia/play_from_this_list.rb +4 -27
  91. data/lib/multimedia_paradise/multimedia/{read_meta_tags.rb → read_meta_tags/read_meta_tags.rb} +14 -19
  92. data/lib/multimedia_paradise/multimedia/start_length_duration.rb +3 -3
  93. data/lib/multimedia_paradise/project/project.rb +8 -4
  94. data/lib/multimedia_paradise/requires/require_the_multimedia_paradise_project.rb +5 -5
  95. data/lib/multimedia_paradise/requires/require_toplevel_methods_files.rb +1 -1
  96. data/lib/multimedia_paradise/sinatra/app.rb +3 -3
  97. data/lib/multimedia_paradise/statistics/README.md +6 -5
  98. data/lib/multimedia_paradise/statistics/video.rb +34 -14
  99. data/lib/multimedia_paradise/{misc → time}/long_format_to_milliseconds_converter.rb +4 -2
  100. data/lib/multimedia_paradise/{misc → time}/milliseconds_to_long_format_converter.rb +2 -2
  101. data/lib/multimedia_paradise/toplevel_methods/audio_related_code.rb +138 -0
  102. data/lib/multimedia_paradise/toplevel_methods/chop_into_segments_of_n_seconds_size.rb +2 -2
  103. data/lib/multimedia_paradise/{conversions → toplevel_methods}/conversions.rb +140 -48
  104. data/lib/multimedia_paradise/toplevel_methods/copy_and_merge_this_video_n_times.rb +5 -5
  105. data/lib/multimedia_paradise/toplevel_methods/create_video_from_this_audio.rb +7 -6
  106. data/lib/multimedia_paradise/toplevel_methods/cut_from_to.rb +2 -2
  107. data/lib/multimedia_paradise/toplevel_methods/denoise.rb +2 -2
  108. data/lib/multimedia_paradise/toplevel_methods/deshake.rb +3 -6
  109. data/lib/multimedia_paradise/toplevel_methods/{output_directory.rb → directory_related_code.rb} +38 -1
  110. data/lib/multimedia_paradise/toplevel_methods/encode_this_video.rb +8 -4
  111. data/lib/multimedia_paradise/toplevel_methods/esystem.rb +43 -4
  112. data/lib/multimedia_paradise/{ffmpeg → toplevel_methods}/ffmpeg.rb +200 -193
  113. data/lib/multimedia_paradise/toplevel_methods/{files_and_directories.rb → files_related_code.rb} +19 -56
  114. data/lib/multimedia_paradise/toplevel_methods/flip_and_rotate.rb +3 -3
  115. data/lib/multimedia_paradise/toplevel_methods/is_audio_file_is_video_file_is_image_file_is_multimedia_file.rb +115 -0
  116. data/lib/multimedia_paradise/toplevel_methods/is_on_roebe.rb +1 -1
  117. data/lib/multimedia_paradise/toplevel_methods/{merge_multimedia_file.rb → merge.rb} +98 -4
  118. data/lib/multimedia_paradise/toplevel_methods/opn.rb +5 -4
  119. data/lib/multimedia_paradise/toplevel_methods/player_in_use.rb +14 -7
  120. data/lib/multimedia_paradise/toplevel_methods/query_the_audio_codec_of_this_file.rb +4 -3
  121. data/lib/multimedia_paradise/toplevel_methods/radio.rb +1 -3
  122. data/lib/multimedia_paradise/toplevel_methods/return_all_video_files.rb +4 -4
  123. data/lib/multimedia_paradise/toplevel_methods/return_path_to_random_simpsons_video_file.rb +1 -1
  124. data/lib/multimedia_paradise/toplevel_methods/return_random_video_file_from_the_video_collection.rb +9 -7
  125. data/lib/multimedia_paradise/toplevel_methods/scale_video.rb +3 -4
  126. data/lib/multimedia_paradise/toplevel_methods/set_title_of.rb +6 -6
  127. data/lib/multimedia_paradise/{help/help.rb → toplevel_methods/show_help.rb} +14 -8
  128. data/lib/multimedia_paradise/toplevel_methods/slow_down_this_video_file.rb +2 -3
  129. data/lib/multimedia_paradise/toplevel_methods/start_screencast.rb +3 -2
  130. data/lib/multimedia_paradise/toplevel_methods/{misc.rb → toplevel_methods.rb} +485 -527
  131. data/lib/multimedia_paradise/toplevel_methods/total_duration.rb +4 -3
  132. data/lib/multimedia_paradise/toplevel_methods/use_lame_codec.rb +1 -2
  133. data/lib/multimedia_paradise/toplevel_methods/video_dataset.rb +1 -1
  134. data/lib/multimedia_paradise/version/version.rb +2 -2
  135. data/lib/multimedia_paradise/video/all_videos.rb +12 -19
  136. data/lib/multimedia_paradise/video/check_numbers.rb +76 -32
  137. data/lib/multimedia_paradise/video/columbo/columbo.rb +36 -14
  138. data/lib/multimedia_paradise/video/guess_video_name.rb +2 -10
  139. data/lib/multimedia_paradise/video/mike_hammer/mike_hammer.rb +2 -2
  140. data/lib/multimedia_paradise/video/missing_video_files/missing_video_files.rb +1 -9
  141. data/lib/multimedia_paradise/video/movie_searcher.rb +2 -10
  142. data/lib/multimedia_paradise/video/mplayer_wrapper.rb +1 -9
  143. data/lib/multimedia_paradise/video/random_video.rb +1 -2
  144. data/lib/multimedia_paradise/video/registered_video_file.rb +2 -10
  145. data/lib/multimedia_paradise/video/report_local_videos.rb +1 -9
  146. data/lib/multimedia_paradise/video/simpsons.rb +2 -10
  147. data/lib/multimedia_paradise/video/smart_animals/smart_animals.rb +10 -8
  148. data/lib/multimedia_paradise/video/speed_up_video.rb +28 -10
  149. data/lib/multimedia_paradise/video/store_available_video_files.rb +49 -33
  150. data/lib/multimedia_paradise/video/the_simpsons/README.md +0 -0
  151. data/lib/multimedia_paradise/video/the_simpsons/good_the_simpsons_episodes.rb +8 -8
  152. data/lib/multimedia_paradise/video/the_simpsons/the_simpsons.rb +14 -10
  153. data/lib/multimedia_paradise/video/video_information.rb +55 -49
  154. data/lib/multimedia_paradise/{configuration → yaml/configuration}/play_zoomed.yml +0 -0
  155. data/lib/multimedia_paradise/yaml/{playlist.yml → playlist/playlist.yml} +14 -15
  156. data/lib/multimedia_paradise/yaml/video/video.yml +1 -1
  157. data/lib/multimedia_paradise/yaml/video_collection/video_collection.yml +34 -32
  158. data/lib/multimedia_paradise/yaml/youtube/alltagsgeschichte/alltagsgeschichte.yml +61 -11
  159. data/lib/multimedia_paradise/yaml/youtube/songs/songs.yml +5 -3
  160. data/multimedia_paradise.gemspec +1 -1
  161. data/test/testing_audio_player.rb +3 -3
  162. data/test/testing_file_duration.rb +5 -5
  163. metadata +45 -76
  164. data/lib/multimedia_paradise/audio/file_duration/constants.rb +0 -53
  165. data/lib/multimedia_paradise/audio/waveform/class.rb +0 -341
  166. data/lib/multimedia_paradise/audio/waveform/constants.rb +0 -38
  167. data/lib/multimedia_paradise/audio/waveform/log.rb +0 -101
  168. data/lib/multimedia_paradise/base/constants.rb +0 -19
  169. data/lib/multimedia_paradise/base/encoding.rb +0 -31
  170. data/lib/multimedia_paradise/base/misc.rb +0 -665
  171. data/lib/multimedia_paradise/base/namespace.rb +0 -36
  172. data/lib/multimedia_paradise/base/time.rb +0 -25
  173. data/lib/multimedia_paradise/constants/conversions.rb +0 -62
  174. data/lib/multimedia_paradise/constants/directory_constants.rb +0 -139
  175. data/lib/multimedia_paradise/constants/encodings.rb +0 -26
  176. data/lib/multimedia_paradise/constants/file_constants.rb +0 -176
  177. data/lib/multimedia_paradise/constants/misc.rb +0 -80
  178. data/lib/multimedia_paradise/constants/my_video_directory.rb +0 -30
  179. data/lib/multimedia_paradise/constants/namespace.rb +0 -14
  180. data/lib/multimedia_paradise/constants/newline.rb +0 -14
  181. data/lib/multimedia_paradise/constants/video_filetypes.rb +0 -27
  182. data/lib/multimedia_paradise/conversions/README.md +0 -2
  183. data/lib/multimedia_paradise/ffmpeg/README.md +0 -2
  184. data/lib/multimedia_paradise/gui/gtk2/multimedia_converter/multimedia_converter.rb +0 -33
  185. data/lib/multimedia_paradise/gui/gtk2/notebook.rb +0 -144
  186. data/lib/multimedia_paradise/gui/gtk2/play_video_from_my_collection/play_video_from_my_collection.rb +0 -43
  187. data/lib/multimedia_paradise/gui/gtk2/simple_play_widget/simple_play_widget.rb +0 -40
  188. data/lib/multimedia_paradise/gui/gtk2/widget_increase_or_decrease_audio/widget_increase_or_decrease_audio.rb +0 -42
  189. data/lib/multimedia_paradise/gui/gtk2/youtube_downloader/youtube_downloader.rb +0 -32
  190. data/lib/multimedia_paradise/gui/gtk3/lyrics/lyrics.rb +0 -0
  191. data/lib/multimedia_paradise/gui/gtk3/multimedia_converter/multimedia_converter.rb +0 -34
  192. data/lib/multimedia_paradise/gui/gtk3/playlist/playlist.rb +0 -34
  193. data/lib/multimedia_paradise/gui/gtk3/simple_play_widget/simple_play_widget.rb +0 -38
  194. data/lib/multimedia_paradise/toplevel_methods/analyze_audio_stream.rb +0 -31
  195. data/lib/multimedia_paradise/toplevel_methods/codecs.rb +0 -50
  196. data/lib/multimedia_paradise/toplevel_methods/copy_file.rb +0 -18
  197. data/lib/multimedia_paradise/toplevel_methods/delay_audio.rb +0 -31
  198. data/lib/multimedia_paradise/toplevel_methods/ensure_that_the_output_directory_exists.rb +0 -27
  199. data/lib/multimedia_paradise/toplevel_methods/has_audio.rb +0 -48
  200. data/lib/multimedia_paradise/toplevel_methods/increase_volume_of_this_audio_file.rb +0 -61
  201. data/lib/multimedia_paradise/toplevel_methods/is_a_multimedia_file.rb +0 -27
  202. data/lib/multimedia_paradise/toplevel_methods/is_audio_file.rb +0 -27
  203. data/lib/multimedia_paradise/toplevel_methods/is_image_file.rb +0 -31
  204. data/lib/multimedia_paradise/toplevel_methods/is_video_file.rb +0 -62
  205. data/lib/multimedia_paradise/toplevel_methods/merge_these_videos.rb +0 -106
  206. data/lib/multimedia_paradise/toplevel_methods/run_sys_command.rb +0 -30
  207. data/lib/multimedia_paradise/toplevel_methods/to_flac.rb +0 -30
  208. data/lib/multimedia_paradise/toplevel_methods/to_mp4.rb +0 -24
  209. /data/doc/{MergingVideoLectures.md → merging_video_lectures/merging_video_lectures.md} +0 -0
  210. /data/doc/{Readme_for_the_cut_audio_component.md → readme_for_the_cut_audio_component/Readme_for_the_cut_audio_component.md} +0 -0
  211. /data/lib/multimedia_paradise/yaml/{audio_formats.yml → audio_formats/audio_formats.yml} +0 -0
  212. /data/lib/multimedia_paradise/yaml/{image_formats.yml → image_formats/image_formats.yml} +0 -0
  213. /data/lib/multimedia_paradise/yaml/{lyrics.yml → lyrics/lyrics.yml} +0 -0
  214. /data/lib/multimedia_paradise/yaml/{music_genres.yml → music_genres/music_genres.yml} +0 -0
  215. /data/lib/multimedia_paradise/yaml/{song_tags.yml → song_tags/song_tags.yml} +0 -0
  216. /data/lib/multimedia_paradise/yaml/{use_this_video_player.yml → use_this_video_player/use_this_video_player.yml} +0 -0
  217. /data/lib/multimedia_paradise/yaml/{video_encoding_settings.yml → video_encoding_settings/video_encoding_settings.yml} +0 -0
  218. /data/lib/multimedia_paradise/yaml/{video_filter_aliases.yml → video_filter_aliases/video_filter_aliases.yml} +0 -0
@@ -39,22 +39,4 @@ class MultimediaBase < ::MultimediaParadise::Base # === MultimediaParadise::Mult
39
39
  super()
40
40
  end
41
41
 
42
- # ========================================================================= #
43
- # === is_audio_file?
44
- # ========================================================================= #
45
- def is_audio_file?(i)
46
- ::MultimediaParadise.is_audio_file?(i)
47
- end; alias is_audio_song? is_audio_file? # === is_audio_song?
48
- alias is_an_audio_file? is_audio_file? # === is_audio_file?
49
-
50
- # ========================================================================= #
51
- # === filter_for_audio_files
52
- #
53
- # We will filter for audio files - so we will keep only files that
54
- # are audio files.
55
- # ========================================================================= #
56
- def filter_for_audio_files(i)
57
- i.select {|file| is_audio_file?(file) }
58
- end
59
-
60
42
  end; end
@@ -114,7 +114,7 @@ class Chord # === MultimediaParadise::Chord
114
114
  'Not enough notes in chord for a proper inversion.'
115
115
  end
116
116
  note_array = @notes.to_a.sort
117
- notes = (0 .. .amount).map { note_array.shift.adjust_by_semitones(12) }
117
+ notes = (0 ... amount).map { note_array.shift.adjust_by_semitones(12) }
118
118
  Chord.new(notes + note_array)
119
119
  end
120
120
 
@@ -1380,11 +1380,11 @@ class CutMultimedia < ::MultimediaParadise::MultimediaBase # === MultimediaParad
1380
1380
  e rev+'of your file in question. When you are '\
1381
1381
  'done, input '+sfancy('run')
1382
1382
  e rev+'to start the cutting. (Remember: Start positions are '+
1383
- 'like '+sfancy('s1')+', end'
1383
+ 'like '+sfancy('s1')+rev+', end'
1384
1384
  e "#{rev}positions are like #{sfancy('e40')}.)#{N}#{N}"
1385
1385
  e rev+'You can also use some extra commands, like "'+
1386
- simp(:length).to_s+'".'
1387
- e rev+'Use "help" to display the help menu.'
1386
+ simp(:length).to_s+rev+'".'
1387
+ e "#{rev}Use \"help\" to display the help menu."
1388
1388
  e "#{N}#{simp('Hint:')} #{rev}You can use #{simp('s11')}"\
1389
1389
  "#{rev} and #{simp('e22')} #{rev}to denote a start time"
1390
1390
  e rev+' at position '+simp('11').to_s+rev+' seconds and an end '+
@@ -1796,7 +1796,8 @@ class CutMultimedia < ::MultimediaParadise::MultimediaBase # === MultimediaParad
1796
1796
  @array_all_start_positions << i.to_f # Store as float.
1797
1797
  if be_verbose
1798
1798
  twentyfour_notation = forestgreen(to_twentyfour_notation(i))
1799
- e "#{rev}Setting a start point at: #{simp(i)} [#{twentyfour_notation}]"
1799
+ e "#{rev}Setting a start point at: #{simp(i)} "\
1800
+ "#{rev}[#{twentyfour_notation}]"
1800
1801
  feedback_all_start_points
1801
1802
  end
1802
1803
  end
@@ -1877,7 +1878,8 @@ class CutMultimedia < ::MultimediaParadise::MultimediaBase # === MultimediaParad
1877
1878
  end_positions? << i.to_f # Append the end point as a float-value here.
1878
1879
  if be_verbose
1879
1880
  twentyfour_notation = forestgreen(to_twentyfour_notation(i).to_f.to_s)
1880
- e "#{rev}Setting an end point at: #{simp(i)} #{rev}[#{twentyfour_notation}]"
1881
+ e "#{rev}Setting an end point at: #{simp(i)} "\
1882
+ "#{rev}[#{twentyfour_notation}#{rev}]"
1881
1883
  feedback_all_end_points
1882
1884
  end
1883
1885
  end
@@ -5,15 +5,15 @@
5
5
  # require 'multimedia_paradise/multimedia/cut_multimedia/evaluate_from_this_file.rb'
6
6
  # =========================================================================== #
7
7
  require 'multimedia_paradise/multimedia/base.rb'
8
- require 'multimedia_paradise/multimedia/cut_multimedia/cut_multimedia.rb'
9
8
 
10
9
  module MultimediaParadise
11
10
 
12
11
  class CutMultimedia < ::MultimediaParadise::MultimediaBase # === MultimediaParadise::CutMultimedia
13
12
 
13
+ require 'multimedia_paradise/multimedia/cut_multimedia/cut_multimedia.rb'
14
14
  require 'multimedia_paradise/toplevel_methods/e.rb'
15
15
  require 'multimedia_paradise/toplevel_methods/esystem.rb'
16
- require 'multimedia_paradise/toplevel_methods/merge_multimedia_file.rb'
16
+ require 'multimedia_paradise/toplevel_methods/merge.rb'
17
17
  require 'multimedia_paradise/audio/wav_to_mp3.rb'
18
18
 
19
19
  # ========================================================================= #
@@ -46,9 +46,21 @@ class InteractiveShell < ::MultimediaParadise::Base
46
46
  # === menu (menu tag)
47
47
  # ========================================================================= #
48
48
  def menu(i)
49
- case i
49
+ case i # case tag
50
+ # ======================================================================= #
51
+ # === check-numbers
52
+ # ======================================================================= #
53
+ when /Check(-| )?Numbers/i
54
+ action(:CheckNumbers)
55
+ # ======================================================================= #
56
+ # === pwd
57
+ # ======================================================================= #
50
58
  when 'pwd'
51
- e Dir.pwd
59
+ # e sdir(return_pwd)
60
+ show_prompt
61
+ # ======================================================================= #
62
+ # === q
63
+ # ======================================================================= #
52
64
  when 'q','quit','exit'
53
65
  :do_exit
54
66
  else
@@ -59,7 +71,14 @@ class InteractiveShell < ::MultimediaParadise::Base
59
71
  end
60
72
 
61
73
  # ========================================================================= #
62
- # === run
74
+ # === show_prompt
75
+ # ========================================================================= #
76
+ def show_prompt
77
+ print steelblue(return_pwd)+royalblue('> ')
78
+ end
79
+
80
+ # ========================================================================= #
81
+ # === run (run tag)
63
82
  # ========================================================================= #
64
83
  def run
65
84
  loop {
@@ -22,7 +22,7 @@ module MultimediaParadise
22
22
 
23
23
  class MergeMultimedia < ::MultimediaParadise::Base # === MultimediaParadise::MergeMultimedia
24
24
 
25
- require 'multimedia_paradise/toplevel_methods/merge_multimedia_file.rb'
25
+ require 'multimedia_paradise/toplevel_methods/merge.rb'
26
26
 
27
27
  # ========================================================================= #
28
28
  # === initialize
@@ -123,5 +123,6 @@ end; end
123
123
 
124
124
  if __FILE__ == $PROGRAM_NAME
125
125
  MultimediaParadise::MergeMultimedia.new(ARGV)
126
- end # merge_multimedia
127
- # merge_multimedia a.webm b.webm
126
+ end # mergemultimedia
127
+ # mergemultimedia a.webm b.webm
128
+ # mergemultimedia one.mp4 two.mp4
@@ -22,11 +22,6 @@ module MultimediaParadise
22
22
 
23
23
  class PlayFromThisList < ::MultimediaParadise::Base # === MultimediaParadise::PlayFromThisList
24
24
 
25
- # ========================================================================= #
26
- # === NAMESPACE
27
- # ========================================================================= #
28
- NAMESPACE = inspect
29
-
30
25
  # ========================================================================= #
31
26
  # === initialize
32
27
  # ========================================================================= #
@@ -46,36 +41,18 @@ class PlayFromThisList < ::MultimediaParadise::Base # === MultimediaParadise::Pl
46
41
  # ========================================================================= #
47
42
  def reset
48
43
  super()
49
- # ======================================================================= #
50
- # === @namespace
51
- # ======================================================================= #
52
- @namespace = NAMESPACE
44
+ infer_the_namespace
53
45
  # ======================================================================= #
54
46
  # === @dataset
55
47
  # ======================================================================= #
56
48
  @dataset = nil
57
49
  end
58
50
 
59
- # ========================================================================= #
60
- # === set_input
61
- # ========================================================================= #
62
- def set_commandline_arguments(i = '')
63
- i = [i].flatten.compact
64
- @commandline_arguments = i
65
- end
66
-
67
- # ========================================================================= #
68
- # === commandline_arguments?
69
- # ========================================================================= #
70
- def commandline_arguments?
71
- @commandline_arguments
72
- end
73
-
74
51
  # ========================================================================= #
75
52
  # === determine_from_which_list_to_play
76
53
  # ========================================================================= #
77
54
  def determine_from_which_list_to_play
78
- first = @commandline_arguments.first
55
+ first = first?
79
56
  if first
80
57
  if first.is_a? String
81
58
  # =================================================================== #
@@ -116,7 +93,7 @@ class PlayFromThisList < ::MultimediaParadise::Base # === MultimediaParadise::Pl
116
93
  # ========================================================================= #
117
94
  def play_the_files_in_the_dataset
118
95
  if @dataset.nil? or @dataset.empty?
119
- opnn; e 'No valid input has been given to this class.'
96
+ opne 'No valid input has been given to this class.'
120
97
  else
121
98
  @dataset.each {|entry| play_this_file(entry) }
122
99
  end
@@ -129,7 +106,7 @@ class PlayFromThisList < ::MultimediaParadise::Base # === MultimediaParadise::Pl
129
106
  if i.include? "'"
130
107
  i = '"'+i+'"'
131
108
  end
132
- esystem "#{MultimediaParadise.use_this_player} #{i}"
109
+ esystem "#{use_which_player?} #{i}"
133
110
  end
134
111
 
135
112
  # ========================================================================= #
@@ -2,14 +2,14 @@
2
2
  # Encoding: UTF-8
3
3
  # frozen_string_literal: true
4
4
  # =========================================================================== #
5
- # === MultimediaParadise::ReadMetaTags
5
+ # === MultimediaParadise::Multimedia::ReadMetaTags
6
6
  #
7
7
  # This class can read the meta tags of e. g. .mp3 files and so forth,
8
8
  # and display them. It requires TagLib for this to work, presently.
9
9
  #
10
10
  # Usage example:
11
11
  #
12
- # MultimediaParadise::ReadMetaTags.new
12
+ # MultimediaParadise::Multimedia::ReadMetaTags.new
13
13
  #
14
14
  # =========================================================================== #
15
15
  # require 'multimedia_paradise/multimedia/read_meta_tags.rb'
@@ -18,12 +18,9 @@ require 'multimedia_paradise/base/base.rb'
18
18
 
19
19
  module MultimediaParadise
20
20
 
21
- class ReadMetaTags < ::MultimediaParadise::Base # === MultimediaParadise::ReadMetaTags.new
21
+ module Multimedia
22
22
 
23
- # ========================================================================= #
24
- # === NAMESPACE
25
- # ========================================================================= #
26
- NAMESPACE = inspect
23
+ class ReadMetaTags < ::MultimediaParadise::Base # === MultimediaParadise::Multimedia::ReadMetaTags
27
24
 
28
25
  # ========================================================================= #
29
26
  # === N_LJUST
@@ -51,10 +48,7 @@ class ReadMetaTags < ::MultimediaParadise::Base # === MultimediaParadise::ReadMe
51
48
  # === @title
52
49
  # ======================================================================= #
53
50
  @title = nil
54
- # ======================================================================= #
55
- # === @namespace
56
- # ======================================================================= #
57
- @namespace = NAMESPACE
51
+ infer_the_namespace
58
52
  end
59
53
 
60
54
  # ========================================================================= #
@@ -132,10 +126,11 @@ class ReadMetaTags < ::MultimediaParadise::Base # === MultimediaParadise::ReadMe
132
126
  # ========================================================================= #
133
127
  def try_to_load_the_taglib_library
134
128
  begin
135
- require 'taglib-ruby'
136
- rescue LoadError
129
+ require 'taglib' # require 'taglib-ruby'
130
+ rescue LoadError => error
137
131
  e 'The taglib-ruby gem is not installed. Consider installing '\
138
132
  'it ( gem install taglib ).'
133
+ pp error
139
134
  exit
140
135
  end
141
136
  end
@@ -151,23 +146,23 @@ class ReadMetaTags < ::MultimediaParadise::Base # === MultimediaParadise::ReadMe
151
146
  end
152
147
 
153
148
  # ========================================================================= #
154
- # === []
149
+ # === MultimediaParadise::Multimedia::ReadMetaTags[]
155
150
  # ========================================================================= #
156
- def self.[](i = '')
151
+ def self.[](i = ARGV)
157
152
  new(i)
158
153
  end
159
154
 
160
- end
155
+ end; end
161
156
 
162
157
  # =========================================================================== #
163
158
  # === MultimediaParadise.read_meta_tags_of_this_file
164
159
  # =========================================================================== #
165
160
  def self.read_meta_tags_of_this_file(i)
166
- MultimediaParadise::ReadMetaTags.new(i)
161
+ MultimediaParadise::Multimedia::ReadMetaTags.new(i)
167
162
  end
168
163
 
169
164
  end
170
165
 
171
166
  if __FILE__ == $PROGRAM_NAME
172
- MultimediaParadise::ReadMetaTags.new(ARGV)
173
- end # read_meta_tags *mp3
167
+ MultimediaParadise.read_meta_tags_of_this_file(ARGV)
168
+ end # readmetatags *mp3
@@ -17,7 +17,7 @@
17
17
  # =========================================================================== #
18
18
  module MultimediaParadise
19
19
 
20
- class StartLengthDuration
20
+ class StartLengthDuration # === MultimediaParadise::StartLengthDuration
21
21
 
22
22
  begin
23
23
  require 'colours'
@@ -50,7 +50,7 @@ class StartLengthDuration
50
50
  end
51
51
 
52
52
  # ========================================================================= #
53
- # === reset
53
+ # === reset (reset tag)
54
54
  # ========================================================================= #
55
55
  def reset
56
56
  @length = 0
@@ -86,7 +86,7 @@ class StartLengthDuration
86
86
  # === calculate_span
87
87
  # ========================================================================= #
88
88
  def calculate_span # the @span is start to duration. Like: '30-50'
89
- @span = @start.to_s+'-'+(@start + @duration).to_s
89
+ @span = "#{@start}-"+(@start + @duration).to_s
90
90
  end
91
91
 
92
92
  # ========================================================================= #
@@ -29,9 +29,8 @@ module MultimediaParadise
29
29
  # This constant points to the main yaml-directory of this project,
30
30
  # but it may be better to use the method below this constant.
31
31
  # ========================================================================= #
32
- PROJECT_YAML_DIRECTORY =
33
- "#{MultimediaParadise::PROJECT_BASE_DIRECTORY}yaml/"
34
-
32
+ # PROJECT_YAML_DIRECTORY = # Removed as of 03.03.2024.
33
+
35
34
  # ========================================================================= #
36
35
  # === MultimediaParadise.project_yaml_dir?
37
36
  #
@@ -41,7 +40,12 @@ module MultimediaParadise
41
40
  #
42
41
  # ========================================================================= #
43
42
  def self.project_yaml_dir?
44
- PROJECT_YAML_DIRECTORY
43
+ "#{MultimediaParadise.project_base_dir?}yaml/"
45
44
  end; self.instance_eval { alias project_yaml_directory? project_yaml_dir? } # === MultimediaParadise.project_yaml_directory?
46
45
 
46
+ end
47
+
48
+ if __FILE__ == $PROGRAM_NAME
49
+ alias e puts
50
+ e MultimediaParadise.project_yaml_dir?
47
51
  end
@@ -4,10 +4,10 @@
4
4
  # =========================================================================== #
5
5
  require 'multimedia_paradise/project/project.rb'
6
6
  require 'multimedia_paradise/constants/constants.rb'
7
- require 'multimedia_paradise/ffmpeg/ffmpeg.rb'
8
- require 'multimedia_paradise/commandline/menu.rb'
9
- require 'multimedia_paradise/misc/long_format_to_milliseconds_converter.rb'
10
- require 'multimedia_paradise/misc/milliseconds_to_long_format_converter.rb'
7
+ require 'multimedia_paradise/toplevel_methods/ffmpeg.rb'
8
+ require 'multimedia_paradise/commandline/commandline.rb'
9
+ require 'multimedia_paradise/time/long_format_to_milliseconds_converter.rb'
10
+ require 'multimedia_paradise/time/milliseconds_to_long_format_converter.rb'
11
11
  # =========================================================================== #
12
12
  # Add all the toplevel-requires next:
13
13
  # =========================================================================== #
@@ -35,4 +35,4 @@ require 'multimedia_paradise/requires/require_the_sinatra_components.rb'
35
35
 
36
36
  require 'multimedia_paradise/multimedia/video_downloader/video_downloader.rb'
37
37
 
38
- require 'multimedia_paradise/conversions/conversions.rb'
38
+ require 'multimedia_paradise/toplevel_methods/conversions.rb'
@@ -14,7 +14,7 @@ module MultimediaParadise
14
14
  # === MultimediaParadise.require_toplevel_methods_files
15
15
  # ========================================================================= #
16
16
  def self.require_toplevel_methods_files
17
- target = "#{MultimediaParadise.project_base_dir?}toplevel_methods/*.rb"
17
+ target = "#{project_base_dir?}toplevel_methods/*.rb"
18
18
  these_files = Dir[target] # We will require these files here.
19
19
  these_files.each {|file|
20
20
  this_file = "multimedia_paradise/toplevel_methods/#{File.basename(file)}"
@@ -16,9 +16,9 @@ require 'sinatra'
16
16
 
17
17
  class Sinatra < ::Sinatra::Base # === MultimediaParadise::Sinatra
18
18
 
19
- require 'multimedia_paradise/constants/encodings.rb'
20
- require 'multimedia_paradise/toplevel_methods/files_and_directories.rb'
21
- require 'multimedia_paradise/toplevel_methods/output_directory.rb'
19
+ require 'multimedia_paradise/constants/constants.rb'
20
+ require 'multimedia_paradise/toplevel_methods/files_related_code.rb'
21
+ require 'multimedia_paradise/toplevel_methods/directory_related_code.rb'
22
22
  require 'multimedia_paradise/video/n_videos.rb'
23
23
 
24
24
  begin
@@ -1,5 +1,6 @@
1
- This directory contains code that may be useful if the user
2
- wishes to obtain statistical information, such as the
3
- local video collection or local audio collection. This will
4
- initially be tailored towards my use cases though - if
5
- someone else wants to make use of it, drop me an email.
1
+ This directory contains code that may be useful if the user wishes
2
+ to obtain statistical information, such as the local video collection
3
+ or local audio collection. This will initially be tailored towards
4
+ my use cases though - if someone else wants to make use of it, drop
5
+ me an email. I will write code that can remain flexible, so other
6
+ users can adjust it to their own use cases.
@@ -12,7 +12,8 @@
12
12
  # MultimediaParadise::Statistics::Video.new
13
13
  #
14
14
  # =========================================================================== #
15
- # require 'multimedia_paradise/video/encode_video'
15
+ # require 'multimedia_paradise/statistics/video.rb'
16
+ # MultimediaParadise.statistics_about_the_local_videos
16
17
  # =========================================================================== #
17
18
  require 'multimedia_paradise/base/base.rb'
18
19
 
@@ -22,17 +23,23 @@ module Statistics
22
23
 
23
24
  class Video < ::MultimediaParadise::Base # === MultimediaParadise::Statistics::Video
24
25
 
25
- require 'multimedia_paradise/video/store_available_video_files.rb'
26
-
27
26
  # ========================================================================= #
28
27
  # === initialize
29
28
  # ========================================================================= #
30
29
  def initialize(
31
30
  i = ARGV,
32
- run_already = true
31
+ run_already = true,
32
+ &block
33
33
  )
34
34
  reset
35
35
  set_commandline_arguments(i)
36
+ # ======================================================================= #
37
+ # === Handle blocks given to this method next
38
+ # ======================================================================= #
39
+ if block_given?
40
+ yielded = yield
41
+ pp yielded
42
+ end
36
43
  run if run_already
37
44
  end
38
45
 
@@ -48,36 +55,49 @@ class Video < ::MultimediaParadise::Base # === MultimediaParadise::Statistics::V
48
55
  # === run (run tag)
49
56
  # ========================================================================= #
50
57
  def run
51
- opne 'Next showing some information about the local video files:'
58
+ opnn { :no_trailing }
59
+ e; e
60
+ e "#{rev}Next showing some information about the local video files."
61
+ e
52
62
  all_video_files = Dir['/home/x/video/**/**'].select {|entry|
53
63
  is_a_video_file?(entry)
54
64
  }
55
65
  e 'There are a total of '+steelblue(all_video_files.size)+
56
- ' video files existing locally.'
66
+ rev+' video files existing locally.'
57
67
  e
58
- e ' How many real videos exist? '.ljust(36)+steelblue(
68
+ e rev+' How many real videos exist? '.ljust(36)+steelblue(
59
69
  all_video_files.select {|inner_entry|
60
- inner_entry.include?('/Realvids')
70
+ inner_entry.include?('/realvids')
61
71
  }.size.to_s.rjust(3)
62
72
  )
63
- e ' How many real life videos exist? '.ljust(36)+steelblue(
73
+ e rev+' How many real life videos exist? '.ljust(36)+steelblue(
64
74
  all_video_files.select {|inner_entry|
65
- inner_entry.include?('/Reallife')
75
+ inner_entry.include?('/reallife')
66
76
  }.size.to_s.rjust(3)
67
77
  )
68
- e ' How many MMA videos exist? '.ljust(36)+steelblue(
78
+ e rev+' How many MMA videos exist? '.ljust(36)+steelblue(
69
79
  all_video_files.select {|inner_entry|
70
- inner_entry.include?('/MMA')
80
+ inner_entry.include?('/mixed_martial_arts')
71
81
  }.size.to_s.rjust(3)
72
82
  )
83
+ e
73
84
  # ======================================================================= #
74
85
  # Delegate to class MultimediaParadise::StoreAvailableVideoFiles next.
75
86
  # ======================================================================= #
76
- MultimediaParadise::StoreAvailableVideoFiles.new
87
+ action(:StoreAvailableVideoFiles) { :no_opn } # Call the correct action here.
77
88
  e
78
89
  end
79
90
 
80
- end; end; end
91
+ end; end
92
+
93
+ # =========================================================================== #
94
+ # === MultimediaParadise.statistics_about_the_local_videos
95
+ # =========================================================================== #
96
+ def self.statistics_about_the_local_videos(&block)
97
+ MultimediaParadise::Statistics::Video.new(&block)
98
+ end
99
+
100
+ end
81
101
 
82
102
  if __FILE__ == $PROGRAM_NAME
83
103
  MultimediaParadise::Statistics::Video.new(ARGV)
@@ -4,12 +4,14 @@
4
4
  # =========================================================================== #
5
5
  # === MultimediaParadise::LongFormatToMillisecondsConverter
6
6
  #
7
+ # This is a standalone class.
8
+ #
7
9
  # Usage example:
8
10
  #
9
11
  # MultimediaParadise::LongFormatToMillisecondsConverter.new
10
12
  #
11
13
  # =========================================================================== #
12
- # require 'multimedia_paradise/misc/long_format_to_milliseconds_converter.rb'
14
+ # require 'multimedia_paradise/time/long_format_to_milliseconds_converter.rb'
13
15
  # MultimediaParadise.long_format_to_milliseconds(ARGV)
14
16
  # =========================================================================== #
15
17
  module MultimediaParadise
@@ -157,7 +159,7 @@ class LongFormatToMillisecondsConverter # === MultimediaParadise::LongFormatToMi
157
159
  # MultimediaParadise::LongFormatToMillisecondsConverter['00:33:32.70']
158
160
  #
159
161
  # ========================================================================= #
160
- def self.[](i)
162
+ def self.[](i = ARGV)
161
163
  new(i).result? # This returns the result in milliseconds.
162
164
  end
163
165
 
@@ -9,7 +9,7 @@
9
9
  # MultimediaParadise::MillisecondsToLongFormatConverter.new(ARGV)
10
10
  #
11
11
  # =========================================================================== #
12
- # require 'multimedia_paradise/misc/milliseconds_to_long_format_converter.rb'
12
+ # require 'multimedia_paradise/time/milliseconds_to_long_format_converter.rb'
13
13
  # MultimediaParadise.milliseconds_to_long_format
14
14
  # =========================================================================== #
15
15
  module MultimediaParadise
@@ -124,7 +124,7 @@ class MillisecondsToLongFormatConverter # MillisecondsToLongFormatConverter
124
124
  # ========================================================================= #
125
125
  def verbose_report
126
126
  e @n_milliseconds.to_s+' milliseconds correspond '+
127
- 'to '+@result.to_s+' in long format.'
127
+ "to #{@result} in long format."
128
128
  end
129
129
 
130
130
  # ========================================================================= #