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
@@ -1,665 +0,0 @@
1
- #!/usr/bin/ruby -w
2
- # Encoding: UTF-8
3
- # frozen_string_literal: true
4
- # =========================================================================== #
5
- # require 'multimedia_paradise/base/misc.rb'
6
- # =========================================================================== #
7
- module MultimediaParadise
8
-
9
- class Base # === MultimediaParadise::Base
10
-
11
- require 'fileutils'
12
- require 'multimedia_paradise/toplevel_methods/ensure_that_the_output_directory_exists.rb'
13
- require 'multimedia_paradise/base/commandline_arguments.rb'
14
- require 'multimedia_paradise/base/time.rb'
15
-
16
- begin
17
- require 'opn'
18
- rescue LoadError; end
19
-
20
- begin
21
- require 'save_file'
22
- rescue LoadError; end
23
-
24
- begin
25
- require 'cliner'
26
- rescue LoadError; end
27
-
28
- begin
29
- require 'roebe/classes/twentyfour_hours_notation.rb'
30
- rescue LoadError; end
31
-
32
- # ========================================================================= #
33
- # === internal_hash?
34
- # ========================================================================= #
35
- def internal_hash?
36
- @internal_hash
37
- end
38
-
39
- # ========================================================================= #
40
- # === reset_the_internal_hash
41
- #
42
- # The method name is a misnomer, but nonetheless it is retained, since I
43
- # like to use such an API.
44
- # ========================================================================= #
45
- def reset_the_internal_hash
46
- @internal_hash = {}
47
- end
48
-
49
- # ========================================================================= #
50
- # === does_the_video_player_support_this_commandline?
51
- #
52
- # The following method checks whether the chosen video player at hand
53
- # supports a particular commandline. The check is necessary because
54
- # on some systems 'mpv' may be an alias to 'mplayer.
55
- # ========================================================================= #
56
- def does_the_video_player_support_this_commandline?(
57
- this_commandline = '--msg-color'
58
- )
59
- cmd = ::MultimediaParadise.use_which_video_player?+
60
- ' '+this_commandline.strip+' 2>&1'
61
- result = `#{cmd}`
62
- !result.include?('Unknown option on the command line: ')
63
- end
64
-
65
- # ========================================================================= #
66
- # === initialize
67
- # ========================================================================= #
68
- def initialize
69
- reset
70
- end
71
-
72
- # ========================================================================= #
73
- # === reset (reset tag)
74
- # ========================================================================= #
75
- def reset
76
- # ======================================================================= #
77
- # === @use_colours
78
- # ======================================================================= #
79
- @use_colours = true
80
- # ======================================================================= #
81
- # === @be_verbose
82
- # ======================================================================= #
83
- set_be_verbose
84
- # ======================================================================= #
85
- # === @debug
86
- #
87
- # By default, debugging is disabled.
88
- # ======================================================================= #
89
- @debug = false
90
- end
91
-
92
- # ========================================================================= #
93
- # === esystem
94
- # ========================================================================= #
95
- def esystem(
96
- i, optional_colour_to_use = nil
97
- )
98
- MultimediaParadise.esystem(
99
- i, optional_colour_to_use
100
- )
101
- end
102
-
103
- # ========================================================================= #
104
- # === load_yaml
105
- # ========================================================================= #
106
- def load_yaml(i)
107
- MultimediaParadise.load_yaml(i)
108
- end
109
-
110
- # ========================================================================= #
111
- # === use_which_multimedia_player?
112
- # ========================================================================= #
113
- def use_which_multimedia_player?
114
- ::MultimediaParadise.use_which_multimedia_player?
115
- end
116
-
117
- # ========================================================================= #
118
- # === e
119
- # ========================================================================= #
120
- def e(i = '')
121
- ::MultimediaParadise.e(i)
122
- end
123
-
124
- # ========================================================================= #
125
- # === efancy
126
- # ========================================================================= #
127
- def efancy(i)
128
- e sfancy(i)
129
- end
130
-
131
- # ========================================================================= #
132
- # === rds
133
- # ========================================================================= #
134
- def rds(i)
135
- i.squeeze '/'
136
- end
137
-
138
- # ========================================================================= #
139
- # === is_mp3?
140
- # ========================================================================= #
141
- def is_mp3?(i)
142
- File.extname(i).downcase == '.mp3'
143
- end
144
-
145
- # ========================================================================= #
146
- # === is_mp4?
147
- # ========================================================================= #
148
- def is_mp4?(i)
149
- File.extname(i).downcase == '.mp4'
150
- end
151
-
152
- # ========================================================================= #
153
- # === is_mkv?
154
- # ========================================================================= #
155
- def is_mkv?(i)
156
- File.extname(i).downcase == '.mkv'
157
- end
158
-
159
- # ========================================================================= #
160
- # === debug?
161
- # ========================================================================= #
162
- def debug?
163
- @debug
164
- end
165
-
166
- # ========================================================================= #
167
- # === enable_debug
168
- # ========================================================================= #
169
- def enable_debug
170
- @debug = true
171
- end
172
-
173
- # ========================================================================= #
174
- # === mkdir
175
- # ========================================================================= #
176
- def mkdir(i)
177
- ::MultimediaParadise.mkdir(i)
178
- end
179
-
180
- # ========================================================================= #
181
- # === cd (cd tag)
182
- # ========================================================================= #
183
- def cd(i)
184
- ::MultimediaParadise.chdir(i)
185
- end; alias chdir cd # === chdir
186
-
187
- # ========================================================================= #
188
- # === no_file_exists_at
189
- #
190
- # This method can be consistently used to notify the user that a
191
- # specific file is missing.
192
- # ========================================================================= #
193
- def no_file_exists_at(this_file)
194
- e "No file exists at `#{sfile(this_file)}`."
195
- end
196
-
197
- # ========================================================================= #
198
- # === no_file_exists
199
- # ========================================================================= #
200
- def no_file_exists
201
- e "No file exists - may be a nil value."
202
- end
203
-
204
- # ========================================================================= #
205
- # === opnn
206
- # ========================================================================= #
207
- def opnn(
208
- namespace = { namespace: @namespace },
209
- &block
210
- )
211
- # ======================================================================= #
212
- # Turn a String into a Hash next.
213
- # ======================================================================= #
214
- if namespace.is_a? String
215
- namespace = { namespace: namespace } # Use the input to the method in this case.
216
- end
217
- Opn.opn(namespace, &block)
218
- end
219
-
220
- # ========================================================================= #
221
- # === is_audio_file?
222
- #
223
- # This method can be used in order to determine whether we are working
224
- # with an audio file here or whether we are not.
225
- # ========================================================================= #
226
- def is_audio_file?(i)
227
- ::MultimediaParadise.is_audio_file?(i)
228
- end; alias is_an_audio_file? is_audio_file? # === is_an_audio_file?
229
-
230
- # ========================================================================= #
231
- # === directory_to_realvids?
232
- #
233
- # This method will return the absolute path to my local realvid
234
- # directory.
235
- #
236
- # It is only used in code of classes that deal with my local multimedia
237
- # files really.
238
- # ========================================================================= #
239
- def directory_to_realvids?
240
- ::MultimediaParadise.realvids_directory?
241
- end; alias realvids_directory? directory_to_realvids? # === realvids_directory?
242
-
243
- # ========================================================================= #
244
- # === local_audio_directory?
245
- # ========================================================================= #
246
- def local_audio_directory?
247
- MultimediaParadise.local_audio_directory?
248
- end; alias directory_containing_the_local_songs? local_audio_directory? # === directory_containing_the_local_songs?
249
-
250
- # ========================================================================= #
251
- # === file_video_collection?
252
- # ========================================================================= #
253
- def file_video_collection?
254
- MultimediaParadise.file_video_collection?
255
- end
256
-
257
- # ========================================================================= #
258
- # === cartoons_directory?
259
- # ========================================================================= #
260
- def cartoons_directory?
261
- MultimediaParadise.cartoons_directory?
262
- end; alias cartoon_directory? cartoons_directory? # === cartoon_directory
263
-
264
- # ========================================================================= #
265
- # === map_symbol_to_locally_existing_file
266
- # ========================================================================= #
267
- def map_symbol_to_locally_existing_file(i)
268
- case i # case tag
269
- # ======================================================================= #
270
- # === wrap :beauty
271
- # ======================================================================= #
272
- when :beauty, ':beauty',
273
- :american_beauty, ':american_beauty'
274
- i = "#{realvids_directory?}017_American_Beauty.mp4"
275
- # ======================================================================= #
276
- # === wrap :halloween
277
- # ======================================================================= #
278
- when :halloween, ':halloween'
279
- i = "#{realvids_directory?}215_Halloween.mp4"
280
- # ======================================================================= #
281
- # === wrap :predator
282
- # ======================================================================= #
283
- when :predator, ':predator'
284
- i = "#{realvids_directory?}245_Predator.avi"
285
- else
286
- e 'Unhandled symbol: '+i.to_s
287
- end
288
- i
289
- end
290
-
291
- # ========================================================================= #
292
- # === remove_file (remove tag)
293
- #
294
- # Use this method if you need to delete/remove a file.
295
- # ========================================================================= #
296
- def remove_file(i)
297
- MultimediaParadise.remove_file(i)
298
- end; alias remove remove_file # === remove_file
299
- alias delete remove_file # === delete
300
-
301
- # ========================================================================= #
302
- # === run (run tag)
303
- # ========================================================================= #
304
- def run
305
- end
306
-
307
- require 'multimedia_paradise/misc/milliseconds_to_long_format_converter.rb'
308
- # ========================================================================= #
309
- # === to_hh_mm_ss
310
- # ========================================================================= #
311
- def to_hh_mm_ss(i)
312
- MultimediaParadise.milliseconds_to_long_format(i * 1000)
313
- end
314
-
315
- # ========================================================================= #
316
- # === MultimediaParadise::Base[]
317
- # ========================================================================= #
318
- def self.[](i = '')
319
- new(i)
320
- end
321
-
322
- # ========================================================================= #
323
- # === time_right_now
324
- # ========================================================================= #
325
- def time_right_now
326
- Time.now.strftime('%H:%M:%S-%d.%m.%Y')
327
- end
328
-
329
- require 'multimedia_paradise/toplevel_methods/is_on_roebe.rb'
330
- # ========================================================================= #
331
- # === is_on_roebe?
332
- #
333
- # Determine whether we are on a roebe-system or whether we are not.
334
- # ========================================================================= #
335
- def is_on_roebe?
336
- ::MultimediaParadise.is_on_roebe?
337
- end
338
-
339
- # ========================================================================= #
340
- # === return_pwd
341
- #
342
- # This method will always return a String with a trailing '/' character.
343
- # ========================================================================= #
344
- def return_pwd
345
- ("#{Dir.pwd}/").squeeze('/')
346
- end
347
-
348
- # ========================================================================= #
349
- # === dataset_from_file_video_collection
350
- # ========================================================================= #
351
- def dataset_from_file_video_collection(
352
- i = ::MultimediaParadise.file_video_collection
353
- )
354
- YAML.load_file(i)
355
- end
356
-
357
- # ========================================================================= #
358
- # === return_all_video_files
359
- #
360
- # This method will return a Hash. The entries may look like this:
361
- #
362
- # 228=> {"title"=>"Apocalypto"
363
- #
364
- # ========================================================================= #
365
- def return_all_video_files
366
- MultimediaParadise.return_all_video_files
367
- end
368
-
369
- # ========================================================================= #
370
- # === select_only_video_files_from
371
- # ========================================================================= #
372
- def select_only_video_files_from(array)
373
- array.select {|entry| is_video_file?(entry) }
374
- end
375
-
376
- # ========================================================================= #
377
- # === copy_file
378
- # ========================================================================= #
379
- def copy_file(from, to = return_pwd)
380
- FileUtils.cp(from, to)
381
- end
382
-
383
- # ========================================================================= #
384
- # === report_pwd
385
- # ========================================================================= #
386
- def report_pwd
387
- e ("#{Dir.pwd}/").squeeze '/'
388
- end
389
-
390
- # ========================================================================= #
391
- # === try_to_rename_kde_konsole_tab
392
- # ========================================================================= #
393
- def try_to_rename_kde_konsole_tab(
394
- new_title = '_',
395
- try_to_rename_the_kde_konsole_tab = TRY_TO_RENAME_THE_KDE_KONSOLE_TAB
396
- )
397
- MultimediaParadise.try_to_rename_kde_konsole_tab(
398
- new_title, try_to_rename_the_kde_konsole_tab
399
- )
400
- end; alias rename_kde_konsole try_to_rename_kde_konsole_tab # === rename_kde_konsole
401
- alias do_rename_konsole try_to_rename_kde_konsole_tab # === do_rename_konsole
402
-
403
- require 'multimedia_paradise/toplevel_methods/is_video_file.rb'
404
- # ========================================================================= #
405
- # === is_video_file?
406
- # ========================================================================= #
407
- def is_video_file?(i)
408
- ::MultimediaParadise.is_video_file?(i) # Delegate to the module-method here.
409
- end; alias is_a_video_file? is_video_file? # === is_a_video_file?
410
- alias is_this_a_video_file? is_video_file? # === is_this_a_video_file?
411
-
412
- # ========================================================================= #
413
- # === filter_for_video_files
414
- # ========================================================================= #
415
- def filter_for_video_files(i)
416
- ::MultimediaParadise.filter_for_video_files(i)
417
- end
418
-
419
- # ========================================================================= #
420
- # === verbose_truth
421
- # ========================================================================= #
422
- def verbose_truth(i)
423
- case i.to_s
424
- when 't','true'
425
- true
426
- when 'f','false',''
427
- false
428
- end
429
- end
430
-
431
- # ========================================================================= #
432
- # === return_random_video
433
- # ========================================================================= #
434
- def return_random_video
435
- unless ::MultimediaParadise.respond_to? :return_random_video
436
- require 'multimedia_paradise/toplevel_methods/return_random_video_file_from_the_video_collection.rb'
437
- end
438
- ::MultimediaParadise.return_random_video
439
- end
440
-
441
- # ========================================================================= #
442
- # === save_what_into
443
- #
444
- # A simple wrapper over SaveFile.
445
- # ========================================================================= #
446
- def save_what_into(what, into)
447
- if Object.const_defined? :SaveFile
448
- SaveFile.write_what_into(what, into)
449
- end
450
- end; alias save_file save_what_into # === save_file
451
- alias write_what_into save_what_into # === write_what_into
452
-
453
- # ========================================================================= #
454
- # === append_what_into
455
- # ========================================================================= #
456
- def append_what_into(what, into)
457
- if Object.const_defined? :SaveFile
458
- SaveFile.append_what_into(what, into)
459
- end
460
- end
461
-
462
- # ========================================================================= #
463
- # === project_base_directory?
464
- # ========================================================================= #
465
- def project_base_directory?
466
- ::MultimediaParadise.project_base_directory?
467
- end
468
-
469
- # ========================================================================= #
470
- # === yaml_directory?
471
- # ========================================================================= #
472
- def yaml_directory?
473
- "#{project_base_directory?}yaml/"
474
- end
475
-
476
- require 'multimedia_paradise/toplevel_methods/output_directory.rb'
477
- # ========================================================================= #
478
- # === log_dir?
479
- # ========================================================================= #
480
- def log_dir?
481
- ::MultimediaParadise.log_dir?
482
- end; alias log_directory? log_dir? # === log_directory?
483
-
484
- # ========================================================================= #
485
- # === ensure_that_the_output_directory_exists
486
- # ========================================================================= #
487
- def ensure_that_the_output_directory_exists(
488
- this_dir = log_directory?
489
- )
490
- this_dir = File.dirname(this_dir) unless this_dir.end_with? '/'
491
- ::MultimediaParadise.ensure_that_the_output_directory_exists
492
- end
493
-
494
- # ========================================================================= #
495
- # === is_multimedia_file?
496
- #
497
- # This method will return true if the given directory is either an
498
- # audio file or a video file.
499
- # ========================================================================= #
500
- def is_multimedia_file?(i)
501
- is_audio_file?(i) or is_video_file?(i)
502
- end; alias is_a_multimedia_file? is_multimedia_file? # === is_a_multimedia_file?
503
- alias is_this_a_multimedia_file? is_multimedia_file? # === is_this_a_multimedia_file?
504
-
505
- # ========================================================================= #
506
- # === beautiful_url
507
- # ========================================================================= #
508
- def beautiful_url(i)
509
- unless Object.const_defined? :BeautifulUrl
510
- begin
511
- require 'beautiful_url'
512
- rescue LoadError; end
513
- end
514
- i = ::BeautifulUrl.new(i) if Object.const_defined? :BeautifulUrl
515
- i = i.first if i.is_a? Array
516
- return i
517
- end
518
-
519
- # ========================================================================= #
520
- # === register_sigint
521
- #
522
- # If an argument is passed to this method then it will be displayed.
523
- # ========================================================================= #
524
- def register_sigint(
525
- use_this_as_exit_message = 'Exiting now as requested.',
526
- &block
527
- )
528
- clear_kde_konsole_tab_on_exit = false
529
- # ======================================================================= #
530
- # === Handle blocks given to this method next
531
- # ======================================================================= #
532
- if block_given?
533
- yielded = yield
534
- case yielded
535
- # ===================================================================== #
536
- # === :clear_kde_konsole_tab_on_exit_if_is_on_roebe
537
- # ===================================================================== #
538
- when :clear_kde_konsole_tab_on_exit_if_is_on_roebe,
539
- :pretty
540
- if is_on_roebe?
541
- clear_kde_konsole_tab_on_exit = true
542
- end
543
- end
544
- end
545
- Signal.trap('SIGINT') {
546
- e use_this_as_exit_message if use_this_as_exit_message
547
- if clear_kde_konsole_tab_on_exit
548
- begin
549
- require 'roebe/classes/kde/kde_konsole/kde_konsole.rb'
550
- e Roebe.konsole_tab_title('.') # Rename the tab again.
551
- rescue LoadError; end
552
- end
553
- exit
554
- }
555
- end
556
-
557
- # ========================================================================= #
558
- # === opne
559
- # ========================================================================= #
560
- def opne(i = '')
561
- opnn; e i
562
- end
563
-
564
- # ========================================================================= #
565
- # === be_verbose?
566
- # ========================================================================= #
567
- def be_verbose?
568
- @be_verbose
569
- end; alias verbose? be_verbose? # === verbose?
570
-
571
- # ========================================================================= #
572
- # === be_silent
573
- # ========================================================================= #
574
- def be_silent
575
- @be_verbose = false
576
- end; alias be_quiet be_silent # == be_quiet
577
- alias set_be_quiet be_silent # === set_be_quiet
578
- alias set_be_silent be_silent # === set_be_silent
579
-
580
- # ========================================================================= #
581
- # === set_be_verbose
582
- # ========================================================================= #
583
- def set_be_verbose
584
- @be_verbose = true
585
- end
586
-
587
- # ========================================================================= #
588
- # === cliner_with_time_stamp
589
- # ========================================================================= #
590
- def cliner_with_time_stamp
591
- _ = Cliner.cliner :return_time
592
- if @use_colours
593
- _.sub!(/(\d{2}:\d{2}:\d{2})/, slateblue("\\1"))
594
- end
595
- e _
596
- end
597
-
598
- # ========================================================================= #
599
- # === cliner (cliner tag)
600
- # ========================================================================= #
601
- def cliner(
602
- i = nil,
603
- &block
604
- )
605
- Cliner.cliner(i, &block)
606
- end
607
-
608
- # ========================================================================= #
609
- # === ucliner
610
- # ========================================================================= #
611
- def ucliner(
612
- n_times = 80,
613
- gold_embed_this = nil
614
- )
615
- case n_times
616
- # ======================================================================= #
617
- # === :default
618
- # ======================================================================= #
619
- when :default
620
- n_times = 80
621
- end
622
- if gold_embed_this
623
- n_times -= (gold_embed_this.to_s.size + 1)
624
- end
625
- result = lightgreen('―' * n_times)
626
- if gold_embed_this
627
- result = result.dup
628
- result << " #{gold(gold_embed_this)}#{rev}"
629
- end
630
- e result
631
- end
632
-
633
- # ========================================================================= #
634
- # === default_readlines
635
- # ========================================================================= #
636
- def default_readlines(
637
- this_file
638
- )
639
- File.readlines(this_file, encoding: 'utf-8')
640
- end
641
-
642
- # ========================================================================= #
643
- # === seconds_to_time_format
644
- # ========================================================================= #
645
- def seconds_to_time_format(i)
646
- if Object.const_defined? :Roebe
647
- return Roebe::TwentyfourHoursNotation[i] # => "00:05:00.000"
648
- else # else return the given input in an unformatted manner.
649
- i
650
- end
651
- end; alias to_twentyfour_notation seconds_to_time_format # === to_twentyfour_notation
652
-
653
- # ========================================================================= #
654
- # === move_file (mv tag, move tag, rename tag)
655
- # ========================================================================= #
656
- def move_file(old, new)
657
- if File.exist? old
658
- ::MultimediaParadise.mv(old, new) # Delegate towards FileUtils in this cae.
659
- else
660
- e 'Can not move `'+sfile(old)+'` as no such file exists.'
661
- end
662
- end; alias mv move_file # === mv
663
- alias rename_file move_file # === rename_file
664
-
665
- end; end
@@ -1,36 +0,0 @@
1
- #!/usr/bin/ruby -w
2
- # Encoding: UTF-8
3
- # frozen_string_literal: true
4
- # =========================================================================== #
5
- # require 'multimedia_paradise/base/namespace.rb'
6
- # =========================================================================== #
7
- module MultimediaParadise
8
-
9
- class Base # === MultimediaParadise::Base
10
-
11
- # ========================================================================= #
12
- # === NAMESPACE
13
- # ========================================================================= #
14
- NAMESPACE = inspect
15
-
16
- # ========================================================================= #
17
- # === infer_the_namespace
18
- #
19
- # This will assume the true namespace from the inspectable name.
20
- # ========================================================================= #
21
- def infer_the_namespace
22
- _ = inspect
23
- if _.include?(':0x')
24
- _ = _.split(':0x').first.to_s.strip
25
- end
26
- _ = _.to_s.delete('<')
27
- if _.include? ' '
28
- _ = _.split(' ').first.delete('#')
29
- if _.include? ':'
30
- _ = _.split(':')[0 .. -2].reject {|entry| entry.empty? }.join('::')
31
- end
32
- end
33
- @namespace = _.delete('#') # And assign it here.
34
- end
35
-
36
- end; end