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
@@ -30,6 +30,7 @@ module MultimediaParadise
30
30
  end
31
31
 
32
32
  if __FILE__ == $PROGRAM_NAME
33
- puts MultimediaParadise.total_duration(ARGF).to_s+' minutes'
34
- end # total_duration
35
- # duration * | total_duration
33
+ alias e puts
34
+ e MultimediaParadise.total_duration(ARGF).to_s+' minutes'
35
+ end # totalduration
36
+ # tosongs; duration * | totalduration
@@ -4,8 +4,6 @@
4
4
  # =========================================================================== #
5
5
  # require 'multimedia_paradise/toplevel_methods/use_lame_codec.rb'
6
6
  # =========================================================================== #
7
- require 'multimedia_paradise/ffmpeg/ffmpeg.rb'
8
-
9
7
  module MultimediaParadise
10
8
 
11
9
  # ========================================================================= #
@@ -22,6 +20,7 @@ module MultimediaParadise
22
20
  def self.use_lame_codec(
23
21
  this_video_file
24
22
  )
23
+ require 'multimedia_paradise/toplevel_methods/ffmpeg.rb'
25
24
  ffmpeg_use_lame_codec(this_video_file)
26
25
  end
27
26
 
@@ -48,7 +48,7 @@ module MultimediaParadise
48
48
  result = VIDEO_DATASET[_]['title']
49
49
  return result
50
50
  else
51
- i
51
+ return i
52
52
  end
53
53
  end
54
54
 
@@ -9,14 +9,14 @@ module MultimediaParadise
9
9
  # ========================================================================= #
10
10
  # === VERSION
11
11
  # ========================================================================= #
12
- VERSION = '1.1.344'
12
+ VERSION = '1.2.2'
13
13
 
14
14
  # ========================================================================= #
15
15
  # === LAST_UPDATE
16
16
  #
17
17
  # The last update entry should be kept in the dd.mm.yyyy format.
18
18
  # ========================================================================= #
19
- LAST_UPDATE = '23.01.2024'
19
+ LAST_UPDATE = '07.03.2024'
20
20
 
21
21
  # ========================================================================= #
22
22
  # === MultimediaParadise.version?
@@ -9,23 +9,22 @@
9
9
  # Note that FindVideo also does something very similar.
10
10
  #
11
11
  # Usage examples:
12
+ #
12
13
  # MultimediaParadise::AllVideos.new
14
+ #
13
15
  # =========================================================================== #
14
16
  # require 'multimedia_paradise/video/all_videos.rb'
17
+ # MultimediaParadise::Video::AllVideos.new
15
18
  # =========================================================================== #
16
19
  require 'multimedia_paradise/base/base.rb'
17
- require 'multimedia_paradise/toplevel_methods/return_all_video_files.rb'
18
20
 
19
21
  module MultimediaParadise
20
22
 
21
- class AllVideos < ::MultimediaParadise::Base # === MultimediaParadise::AllVideos.new
23
+ module Video
22
24
 
23
- include MultimediaParadise
25
+ class AllVideos < ::MultimediaParadise::Base # === MultimediaParadise::Video::AllVideos
24
26
 
25
- # ========================================================================= #
26
- # === NAMESPACE
27
- # ========================================================================= #
28
- NAMESPACE = inspect
27
+ require 'multimedia_paradise/toplevel_methods/return_all_video_files.rb'
29
28
 
30
29
  # ========================================================================= #
31
30
  # === initialize
@@ -44,13 +43,14 @@ class AllVideos < ::MultimediaParadise::Base # === MultimediaParadise::AllVideos
44
43
  def reset
45
44
  super()
46
45
  @array_unknown_tags = []
46
+ infer_the_namespace
47
47
  end
48
48
 
49
49
  # ========================================================================= #
50
50
  # === report_all_known_videofiles
51
51
  # ========================================================================= #
52
52
  def report_all_known_videofiles
53
- e; opnn; e 'All known (registered) videofiles are:'; e
53
+ e; opne 'All known (registered) videofiles are:'; e
54
54
  _ = return_all_video_files # This method is defined in shared.rb.
55
55
  _.each_pair {|key, value|
56
56
  title = value['title']
@@ -58,7 +58,7 @@ class AllVideos < ::MultimediaParadise::Base # === MultimediaParadise::AllVideos
58
58
  title = swarn('<unknown>')
59
59
  @array_unknown_tags << key
60
60
  end
61
- e simp((' %03d' % key).to_s)+' is '+sfancy(title)+'.'
61
+ e simp((' %03d' % key).to_s)+rev+' is '+sfancy(title)+"#{rev}."
62
62
  }; e
63
63
  end
64
64
 
@@ -67,18 +67,11 @@ class AllVideos < ::MultimediaParadise::Base # === MultimediaParadise::AllVideos
67
67
  # ========================================================================= #
68
68
  def consider_reporting_unknown_tags
69
69
  unless @array_unknown_tags.empty?
70
- opnn; e 'These entries are empty right now.'
70
+ opne 'These entries are empty right now.'
71
71
  pp @array_unknown_tags
72
72
  end
73
73
  end
74
74
 
75
- # ========================================================================= #
76
- # === opnn
77
- # ========================================================================= #
78
- def opnn
79
- super(NAMESPACE) if show_namespace?
80
- end
81
-
82
75
  # ========================================================================= #
83
76
  # === show_namespace?
84
77
  # ========================================================================= #
@@ -94,8 +87,8 @@ class AllVideos < ::MultimediaParadise::Base # === MultimediaParadise::AllVideos
94
87
  consider_reporting_unknown_tags
95
88
  end
96
89
 
97
- end; end
90
+ end; end; end
98
91
 
99
92
  if __FILE__ == $PROGRAM_NAME
100
- MultimediaParadise::AllVideos.new
93
+ MultimediaParadise::Video::AllVideos.new
101
94
  end # allvideos
@@ -5,12 +5,16 @@
5
5
  # === MultimediaParadise::Video::CheckNumbers
6
6
  #
7
7
  # The sole purpose of this class is to check that the numbers will match.
8
+ #
8
9
  # It will NOT correct anything.
9
10
  #
10
11
  # Usage example:
12
+ #
11
13
  # MultimediaParadise::Video::CheckNumbers.new
14
+ #
12
15
  # =========================================================================== #
13
16
  # require 'multimedia_paradise/video/check_numbers.rb'
17
+ # MultimediaParadise.check_numbers
14
18
  # =========================================================================== #
15
19
  require 'multimedia_paradise/base/base.rb'
16
20
 
@@ -21,9 +25,9 @@ module Video
21
25
  class CheckNumbers < ::MultimediaParadise::Base # === MultimediaParadise::Video::CheckNumbers.new
22
26
 
23
27
  # ========================================================================= #
24
- # === NAMESPACE
28
+ # === N_PAD
25
29
  # ========================================================================= #
26
- NAMESPACE = inspect
30
+ N_PAD = 45
27
31
 
28
32
  # ========================================================================= #
29
33
  # === DATASET_CONTAINING_ALL_VIDEOS
@@ -31,7 +35,7 @@ class CheckNumbers < ::MultimediaParadise::Base # === MultimediaParadise::Video:
31
35
  _ = FILE_VIDEO_COLLECTION
32
36
  if File.exist? _
33
37
  begin
34
- DATASET_CONTAINING_ALL_VIDEOS = YAML.load_file(FILE_VIDEO_COLLECTION)
38
+ DATASET_CONTAINING_ALL_VIDEOS = YAML.load_file(_)
35
39
  rescue Psych::SyntaxError => error
36
40
  pp error
37
41
  DATASET_CONTAINING_ALL_VIDEOS = {}
@@ -44,13 +48,19 @@ class CheckNumbers < ::MultimediaParadise::Base # === MultimediaParadise::Video:
44
48
  # === initialize
45
49
  # ========================================================================= #
46
50
  def initialize(
47
- check_this_entity = Dir.pwd,
51
+ check_this_entity = return_pwd,
48
52
  run_already = true
49
53
  )
50
54
  reset
55
+ # ======================================================================= #
56
+ # === Handle blocks given to this method next:
57
+ # ======================================================================= #
51
58
  if block_given?
52
59
  yielded = yield
53
60
  case yielded
61
+ # ===================================================================== #
62
+ # === :do_not_use_opn
63
+ # ===================================================================== #
54
64
  when :do_not_use_opn
55
65
  @do_use_opn = false
56
66
  end
@@ -64,6 +74,8 @@ class CheckNumbers < ::MultimediaParadise::Base # === MultimediaParadise::Video:
64
74
  # ========================================================================= #
65
75
  def reset
66
76
  super()
77
+ infer_the_namespace
78
+ # === @do_use_opn
67
79
  @do_use_opn = true
68
80
  end
69
81
 
@@ -72,8 +84,18 @@ class CheckNumbers < ::MultimediaParadise::Base # === MultimediaParadise::Video:
72
84
  #
73
85
  # The "entity" can be either a directory or a file.
74
86
  # ========================================================================= #
75
- def set_check_this_entity(i = '')
87
+ def set_check_this_entity(i = :default)
76
88
  i = i.first if i.is_a? Array
89
+ if i.nil? and is_on_roebe?
90
+ i = :default
91
+ end
92
+ case i
93
+ # ======================================================================= #
94
+ # === :default
95
+ # ======================================================================= #
96
+ when :default
97
+ i = '/home/x/video/realvids/'
98
+ end
77
99
  i = i.to_s.dup
78
100
  if File.directory? i
79
101
  i << '/' unless i.end_with? '/'
@@ -119,15 +141,18 @@ class CheckNumbers < ::MultimediaParadise::Base # === MultimediaParadise::Video:
119
141
  these_video_files.each {|entry|
120
142
  check_whether_this_file_is_included(entry)
121
143
  }
122
- opnne 'All '+simp(these_video_files.size.to_s)+' videos are correct '\
123
- 'from the names alone, at the least.'
144
+ e
145
+ opne steelblue('All ')+
146
+ simp(these_video_files.size.to_s)+
147
+ steelblue(" videos are correct from the names alone, at the least.")
148
+ e
124
149
  elsif File.file? _
125
150
  check_whether_this_file_is_included(_)
126
151
  else
127
- opnn; e 'No idea how to proceed with '+simp(_)+'.'
152
+ opne rev+'No idea how to proceed with '+simp(_)+rev+'.'
128
153
  unless File.exist? _
129
- opnn; e 'The input does not exist. Perhaps you have'
130
- opnn; e 'misspelled the name?'
154
+ opne 'The input does not exist. Perhaps you have'
155
+ opne 'misspelled the name?'
131
156
  end
132
157
  end
133
158
  end
@@ -139,10 +164,30 @@ class CheckNumbers < ::MultimediaParadise::Base # === MultimediaParadise::Video:
139
164
  DATASET_CONTAINING_ALL_VIDEOS
140
165
  end
141
166
 
167
+ # ========================================================================= #
168
+ # === yes_is_included_at_position
169
+ # ========================================================================= #
170
+ def yes_is_included_at_position(i, position, n_pad = N_PAD)
171
+ opne "#{rev}Yes, #{sfancy(i.ljust(n_pad))}#{rev} is included. The "\
172
+ "position is #{simp(position.to_s.rjust(3))}#{rev}."
173
+ end
174
+
175
+ # ========================================================================= #
176
+ # === no_is_NOT_included_at_position
177
+ # ========================================================================= #
178
+ def no_is_NOT_included_at_position(i, position, n_pad)
179
+ opne "#{rev} No, #{sfancy(i.ljust(n_pad))}#{rev} is #{swarn('NOT')} "\
180
+ "#{rev}included. The position is "\
181
+ "#{simp(position.to_s.rjust(3))}#{rev}."
182
+ end
183
+
142
184
  # ========================================================================= #
143
185
  # === check_whether_this_file_is_included
144
186
  # ========================================================================= #
145
- def check_whether_this_file_is_included(i)
187
+ def check_whether_this_file_is_included(
188
+ i,
189
+ n_pad = N_PAD
190
+ )
146
191
  # ======================================================================= #
147
192
  # Chop off '/' if they are part of the input.
148
193
  # ======================================================================= #
@@ -151,20 +196,17 @@ class CheckNumbers < ::MultimediaParadise::Base # === MultimediaParadise::Video:
151
196
  if i.include? '_VHS-RIP'
152
197
  i.sub!(/_VHS-RIP/,'')
153
198
  end
154
- if i.include? '_' # <- Only these are assumed to be correct.
199
+ if i.include? '_' # Only these are assumed to be correct.
155
200
  dataset = dataset?
156
201
  splitted = i.split('_')
157
202
  position = splitted.first.to_i
158
203
  if dataset.has_key? position
159
- title = dataset[position]['title']
160
- compact_title = title.delete(' ')
161
- n_pad = 45
204
+ title = dataset[position]['title']
205
+ compact_title = title.delete(" ':,") # ← We apparently do not need these special characters.
162
206
  if i.delete('_').include? compact_title
163
- opnn; e 'Yes, '+sfancy(i.ljust(n_pad))+' is included. The position '\
164
- 'is '+simp(position.to_s.rjust(3))+'.'
207
+ yes_is_included_at_position(i, position, n_pad)
165
208
  else # Here when the input was NOT found.
166
- opnn; e ' No, '+sfancy(i.ljust(n_pad))+' is '+swarn('NOT')+
167
- ' included. The position is '+simp(position.to_s.rjust(3))+'.'
209
+ no_is_NOT_included_at_position(i, position, n_pad)
168
210
  e '---'
169
211
  pp i
170
212
  pp compact_title
@@ -172,26 +214,19 @@ class CheckNumbers < ::MultimediaParadise::Base # === MultimediaParadise::Video:
172
214
  exit
173
215
  end
174
216
  else
175
- opnne swarn('The position ')+sfancy(position)+swarn(' was not found in '\
217
+ opne swarn('The position ')+sfancy(position)+swarn(' was not found in '\
176
218
  'the dataset.')+' This is the input `'+simp(i)+'`.'
177
- opnne 'Perhaps it can be deleted.'
219
+ opne 'Perhaps it can be deleted.'
178
220
  exit # Easier to exit here, then fix the problem.
179
221
  end
180
222
  end
181
223
  end
182
224
 
183
- # ========================================================================= #
184
- # === opnne
185
- # ========================================================================= #
186
- def opnne(i)
187
- opnn; e i
188
- end
189
-
190
225
  # ========================================================================= #
191
226
  # === opnn
192
227
  # ========================================================================= #
193
228
  def opnn
194
- super(NAMESPACE) if @do_use_opn
229
+ super(namespace?) if @do_use_opn
195
230
  end
196
231
 
197
232
  # ========================================================================= #
@@ -204,12 +239,21 @@ class CheckNumbers < ::MultimediaParadise::Base # === MultimediaParadise::Video:
204
239
  # ========================================================================= #
205
240
  # === MultimediaParadise::Video::CheckNumbers[]
206
241
  # ========================================================================= #
207
- def self.[](i = '')
242
+ def self.[](i = ARGV)
208
243
  new(i)
209
244
  end
210
245
 
211
- end; end; end
246
+ end; end
247
+
248
+ # =========================================================================== #
249
+ # === MultimediaParadise.check_numbers
250
+ # =========================================================================== #
251
+ def self.check_numbers
252
+ MultimediaParadise::Video::CheckNumbers.new { :do_not_use_opn }
253
+ end
254
+
255
+ end
212
256
 
213
257
  if __FILE__ == $PROGRAM_NAME
214
258
  MultimediaParadise::Video::CheckNumbers.new(ARGV) { :do_not_use_opn }
215
- end # check_numbers
259
+ end # checknumbers
@@ -2,22 +2,25 @@
2
2
  # Encoding: UTF-8
3
3
  # frozen_string_literal: true
4
4
  # =========================================================================== #
5
- # === MultimediaParadise::Columbo
5
+ # === MultimediaParadise::Video::Columbo
6
6
  #
7
7
  # This class will play my custom, local Columbo-files.
8
8
  #
9
9
  # Usage example:
10
10
  #
11
- # MultimediaParadise::Columbo.new(ARGV)
11
+ # MultimediaParadise::Video::Columbo.new(ARGV)
12
12
  #
13
13
  # =========================================================================== #
14
14
  # require 'multimedia_paradise/video/columbo/columbo.rb'
15
- # MultimediaParadise::Columbo.new(ARGV)
15
+ # MultimediaParadise::Video::Columbo.new(ARGV)
16
+ # MultimediaParadise.columbo(ARGV)
16
17
  # =========================================================================== #
17
18
  require 'multimedia_paradise/base/base.rb'
18
19
 
19
20
  module MultimediaParadise
20
21
 
22
+ module Video
23
+
21
24
  class Columbo < ::MultimediaParadise::Base
22
25
 
23
26
  # ========================================================================= #
@@ -69,6 +72,13 @@ class Columbo < ::MultimediaParadise::Base
69
72
  @play_n_files = nil
70
73
  end
71
74
 
75
+ # ========================================================================= #
76
+ # === play_n_files?
77
+ # ========================================================================= #
78
+ def play_n_files?
79
+ @play_n_files
80
+ end
81
+
72
82
  # ========================================================================= #
73
83
  # === set_play_n_files
74
84
  # ========================================================================= #
@@ -92,24 +102,26 @@ class Columbo < ::MultimediaParadise::Base
92
102
  # ========================================================================= #
93
103
  def run
94
104
  _ = first_argument?
95
- if _ and _.is_a?(String) and (_ =~ /\d{1,3}/)
96
- set_play_n_files(_)
105
+ if _
106
+ if _.to_s =~ /\d{1,3}/
107
+ set_play_n_files(_.to_s)
108
+ end
97
109
  end
98
110
  case @use_this_base_directory
99
111
  # ======================================================================= #
100
112
  # === :default
101
113
  # ======================================================================= #
102
114
  when :default
103
- @use_this_base_directory = '/home/x/video/'
115
+ @use_this_base_directory = home_x_video?
104
116
  end
105
117
  # ========================================================================= #
106
118
  # First we must obtain all columbo files.
107
119
  # ========================================================================= #
108
- all_columbo_files = Dir[@use_this_base_directory+'/Columbo*/**/**'].shuffle
109
- if @play_n_files and @play_n_files.is_a? Numeric
110
- all_columbo_files = all_columbo_files[0 .. (@play_n_files - 1)]
120
+ all_columbo_files = Dir[@use_this_base_directory+'/columbo/**/**'].shuffle
121
+ if play_n_files? and play_n_files?.is_a? Numeric
122
+ all_columbo_files = all_columbo_files[0 .. (play_n_files? - 1)]
111
123
  end
112
- e 'We will next play these '+all_columbo_files.size.to_s+' video files:'
124
+ e "#{rev}We will next play these #{all_columbo_files.size.to_s} video files:"
113
125
  all_columbo_files.each {|file|
114
126
  play_this_file(file)
115
127
  }
@@ -119,21 +131,31 @@ class Columbo < ::MultimediaParadise::Base
119
131
  # === play_this_file
120
132
  # ========================================================================= #
121
133
  def play_this_file(file)
134
+ file = rds(file)
122
135
  if file.include?("'")
123
136
  file = '"'+file+'"'
124
137
  end
125
- esystem("mplayer -vo x11 #{file}")
138
+ esystem(use_which_multimedia_player?+" -vo x11 #{file}")
126
139
  end
127
140
 
128
141
  # ========================================================================= #
129
- # === MultimediaParadise::Columbo[]
142
+ # === MultimediaParadise::Video::Columbo[]
130
143
  # ========================================================================= #
131
- def self.[](i = '')
144
+ def self.[](i = ARGV)
132
145
  new(i)
133
146
  end
134
147
 
135
148
  end; end
136
149
 
150
+ # =========================================================================== #
151
+ # === MultimediaParadise.columbo
152
+ # =========================================================================== #
153
+ def self.columbo(i = ARGV)
154
+ MultimediaParadise::Video::Columbo.new(i)
155
+ end
156
+
157
+ end
158
+
137
159
  if __FILE__ == $PROGRAM_NAME
138
- MultimediaParadise::Columbo.new(ARGV)
160
+ MultimediaParadise::Video::Columbo.new(ARGV)
139
161
  end # columbo 15
@@ -15,11 +15,6 @@ module MultimediaParadise # require 'multimedia_paradise/video/guess_video_name.
15
15
 
16
16
  class GuessVideoName < Base # === MultimediaParadise::GuessVideoName
17
17
 
18
- # ========================================================================= #
19
- # === NAMESPACE
20
- # ========================================================================= #
21
- NAMESPACE = inspect
22
-
23
18
  # ========================================================================= #
24
19
  # === initialize
25
20
  # ========================================================================= #
@@ -37,16 +32,13 @@ class GuessVideoName < Base # === MultimediaParadise::GuessVideoName
37
32
  # ========================================================================= #
38
33
  def reset
39
34
  super()
35
+ infer_the_namespace
40
36
  _ = file_video_collection?
41
37
  if File.exist? _
42
38
  @video_dataset = YAML.load_file(_)
43
39
  else
44
- opnn; e 'No file at '+sfile(_)+' exists.'
40
+ opnn; no_file_exists_at(_)
45
41
  end
46
- # ======================================================================= #
47
- # === @namespace
48
- # ======================================================================= #
49
- @namespace = NAMESPACE
50
42
  end
51
43
 
52
44
  # ========================================================================= #
@@ -57,13 +57,13 @@ class MikeHammer < ::MultimediaParadise::Base
57
57
  def run
58
58
  obtain_all_mike_hammer_episodes
59
59
  sample = @all_mike_hammer_episodes.sample
60
- esystem 'mpv "'+sample.to_s+'" &'
60
+ esystem use_this_player?+' "'+sample.to_s+'" &'
61
61
  end
62
62
 
63
63
  # ========================================================================= #
64
64
  # === MultimediaParadise::MikeHammer[]
65
65
  # ========================================================================= #
66
- def self.[](i = '')
66
+ def self.[](i = ARGV)
67
67
  new(i)
68
68
  end
69
69
 
@@ -25,11 +25,6 @@ module Video
25
25
 
26
26
  class MissingVideoFiles < ::MultimediaParadise::Base # === MultimediaParadise::Video::FindMissingVideoFiles
27
27
 
28
- # ========================================================================= #
29
- # === NAMESPACE
30
- # ========================================================================= #
31
- NAMESPACE = inspect
32
-
33
28
  # ========================================================================= #
34
29
  # === initialize
35
30
  # ========================================================================= #
@@ -49,10 +44,7 @@ class MissingVideoFiles < ::MultimediaParadise::Base # === MultimediaParadise::V
49
44
  # ========================================================================= #
50
45
  def reset
51
46
  super()
52
- # ======================================================================= #
53
- # === @namespace
54
- # ======================================================================= #
55
- @namespace = NAMESPACE
47
+ infer_the_namespace
56
48
  # ======================================================================= #
57
49
  # === @work_on_this_directory
58
50
  # ======================================================================= #
@@ -25,11 +25,6 @@ class MovieSearcher < ::MultimediaParadise::Base # === MultimediaParadise::Video
25
25
 
26
26
  alias ee print
27
27
 
28
- # ========================================================================= #
29
- # === NAMESPACE
30
- # ========================================================================= #
31
- NAMESPACE = inspect
32
-
33
28
  # ========================================================================= #
34
29
  # === API_KEY
35
30
  #
@@ -64,10 +59,7 @@ class MovieSearcher < ::MultimediaParadise::Base # === MultimediaParadise::Video
64
59
  # ========================================================================= #
65
60
  def reset
66
61
  super()
67
- # ======================================================================= #
68
- # === @namespace
69
- # ======================================================================= #
70
- @namespace = NAMESPACE
62
+ infer_the_namespace
71
63
  # ======================================================================= #
72
64
  # === @width_limit
73
65
  # ======================================================================= #
@@ -270,7 +262,7 @@ class MovieSearcher < ::MultimediaParadise::Base # === MultimediaParadise::Video
270
262
  # ========================================================================= #
271
263
  # === MultimediaParadise::Video::MovieSearcher[]
272
264
  # ========================================================================= #
273
- def self.[](i = '')
265
+ def self.[](i = ARGV)
274
266
  new(i)
275
267
  end
276
268
 
@@ -26,11 +26,6 @@ class MplayerWrapper < Base # === MultimediaParadise::MplayerWrapper
26
26
  require 'multimedia_paradise/audio/file_duration/file_duration.rb'
27
27
  require 'multimedia_paradise/video/the_simpsons/good_the_simpsons_episodes.rb'
28
28
 
29
- # ========================================================================= #
30
- # === NAMESPACE
31
- # ========================================================================= #
32
- NAMESPACE = inspect
33
-
34
29
  # ========================================================================= #
35
30
  # === ALSA_OPTIONS
36
31
  # ========================================================================= #
@@ -83,10 +78,7 @@ class MplayerWrapper < Base # === MultimediaParadise::MplayerWrapper
83
78
  # ========================================================================= #
84
79
  def reset
85
80
  super()
86
- # ======================================================================= #
87
- # === @namespace
88
- # ======================================================================= #
89
- @namespace = NAMESPACE
81
+ infer_the_namespace
90
82
  # ======================================================================= #
91
83
  # === @play_these_multimedia_files
92
84
  # ======================================================================= #
@@ -18,7 +18,6 @@
18
18
  # MultimediaParadise::Video::RandomVideo.new(ARGV)
19
19
  # =========================================================================== #
20
20
  require 'multimedia_paradise/base/base.rb'
21
- require 'multimedia_paradise/toplevel_methods/is_a_multimedia_file.rb'
22
21
 
23
22
  module MultimediaParadise
24
23
 
@@ -32,7 +31,7 @@ class RandomVideo < Base # === MultimediaParadise::Video::RandomVideo
32
31
  # The first argument is usually the target directory.
33
32
  # ========================================================================= #
34
33
  def initialize(
35
- commandline_arguments = Dir.pwd,
34
+ commandline_arguments = return_pwd,
36
35
  run_already = true
37
36
  )
38
37
  reset
@@ -18,12 +18,7 @@ module MultimediaParadise
18
18
 
19
19
  module Video
20
20
 
21
- class RegisteredVideoFile < ::MultimediaParadise::Base # MultimediaParadise::Video::RegisteredVideoFile.new
22
-
23
- # ========================================================================= #
24
- # === NAMESPACE
25
- # ========================================================================= #
26
- NAMESPACE = inspect
21
+ class RegisteredVideoFile < ::MultimediaParadise::Base # MultimediaParadise::Video::RegisteredVideoFile
27
22
 
28
23
  # ========================================================================= #
29
24
  # === initialize
@@ -42,10 +37,7 @@ class RegisteredVideoFile < ::MultimediaParadise::Base # MultimediaParadise::Vid
42
37
  # ========================================================================= #
43
38
  def reset
44
39
  super()
45
- # ======================================================================= #
46
- # === @namespace
47
- # ======================================================================= #
48
- @namespace = NAMESPACE
40
+ infer_the_namespace
49
41
  end
50
42
 
51
43
  # ========================================================================= #