multimedia_paradise 1.1.344 → 1.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +99 -77
- data/bin/audio_player +1 -1
- data/bin/extract_images_from_this_video_file +1 -1
- data/bin/loop_this_video +1 -1
- data/bin/merge_avi_files +1 -1
- data/bin/merge_mp3 +1 -1
- data/bin/mp3_to_opus +1 -1
- data/bin/mpg_to_mp4 +1 -1
- data/bin/multimedia_paradise +1 -1
- data/bin/to_aiff +2 -5
- data/bin/to_flac +7 -0
- data/bin/to_mp3 +8 -0
- data/bin/to_mp4 +1 -1
- data/bin/to_ogg +7 -0
- data/bin/verbose_analyse_this_mp3_file_for_id3_tags +1 -1
- data/bin/video_codec +1 -1
- data/bin/video_thumbnail +1 -1
- data/bin/video_to_images +1 -1
- data/doc/README.gen +88 -51
- data/doc/{CHANGELOG.md → changelog/changelog.md} +8 -6
- data/doc/{LINKS.md → links/links.md} +2 -2
- data/doc/{MOTIVATION_FOR_THIS_PROJECT.md → motivation_for_the_multimedia_paradise_project/motivation_for_the_multimedia_paradise_project.md} +5 -5
- data/doc/todo/todo_for_the_multimedia_paradise_project.md +79 -93
- data/lib/multimedia_paradise/actions/actions.rb +224 -0
- data/lib/multimedia_paradise/audio/audio_player/audio_player.rb +61 -64
- data/lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb +17 -8
- data/lib/multimedia_paradise/audio/base.rb +0 -5
- data/lib/multimedia_paradise/audio/compress.rb +8 -5
- data/lib/multimedia_paradise/audio/create_m3u_playlist.rb +7 -11
- data/lib/multimedia_paradise/audio/extract_audio/constants.rb +0 -37
- data/lib/multimedia_paradise/audio/extract_audio/extract_audio.rb +90 -68
- data/lib/multimedia_paradise/audio/file_duration/file_duration.rb +134 -80
- data/lib/multimedia_paradise/audio/genres/boogie.rb +1 -6
- data/lib/multimedia_paradise/audio/genres/concerts.rb +1 -6
- data/lib/multimedia_paradise/audio/genres/constants.rb +1 -1
- data/lib/multimedia_paradise/audio/genres/eurodance.rb +1 -6
- data/lib/multimedia_paradise/audio/genres/genre.rb +36 -33
- data/lib/multimedia_paradise/audio/genres/hip_hop.rb +1 -6
- data/lib/multimedia_paradise/audio/genres/italian_songs.rb +1 -6
- data/lib/multimedia_paradise/audio/genres/the_1980s.rb +1 -6
- data/lib/multimedia_paradise/audio/genres/trance.rb +4 -7
- data/lib/multimedia_paradise/audio/lyrics_fetcher.rb +27 -22
- data/lib/multimedia_paradise/audio/merge_audio_files.rb +18 -11
- data/lib/multimedia_paradise/audio/modify_year_of_audio_file.rb +23 -11
- data/lib/multimedia_paradise/audio/n_audio_songs.rb +3 -2
- data/lib/multimedia_paradise/audio/play_all_audio_files.rb +41 -16
- data/lib/multimedia_paradise/audio/playlist/playlist.rb +163 -123
- data/lib/multimedia_paradise/audio/remove_audio.rb +11 -6
- data/lib/multimedia_paradise/audio/remove_last_second.rb +2 -3
- data/lib/multimedia_paradise/audio/report_missing_id.rb +22 -12
- data/lib/multimedia_paradise/audio/streamripper/streamripper_wrapper.rb +7 -5
- data/lib/multimedia_paradise/audio/to_mp3.rb +7 -5
- data/lib/multimedia_paradise/audio/to_ogg.rb +3 -1
- data/lib/multimedia_paradise/audio/wav_to_mp3.rb +5 -5
- data/lib/multimedia_paradise/base/base.rb +854 -15
- data/lib/multimedia_paradise/base/colours.rb +28 -31
- data/lib/multimedia_paradise/base/{commandline_arguments.rb → commandline_arguments_module/commandline_arguments_module.rb} +12 -9
- data/lib/multimedia_paradise/colours/colours.rb +4 -1
- data/lib/multimedia_paradise/commandline/{menu.rb → commandline.rb} +19 -16
- data/lib/multimedia_paradise/constants/constants.rb +504 -14
- data/lib/multimedia_paradise/constants/web_constants.rb +2 -4
- data/lib/multimedia_paradise/gui/gui_base.rb +2 -2
- data/lib/multimedia_paradise/gui/libui/lyrics/lyrics.rb +1 -1
- data/lib/multimedia_paradise/gui/libui/simple_play_widget/simple_play_widget.rb +1 -1
- data/lib/multimedia_paradise/gui/libui/video_player/video_player.rb +1 -1
- data/lib/multimedia_paradise/gui/libui/youtube_channels/youtube_channels.rb +1 -1
- data/lib/multimedia_paradise/gui/shared_code/multimedia_converter/multimedia_converter_module.rb +0 -478
- data/lib/multimedia_paradise/gui/shared_code/playlist/playlist_module.rb +94 -41
- data/lib/multimedia_paradise/gui/shared_code/simple_play_widget/simple_play_widget_module.rb +0 -257
- data/lib/multimedia_paradise/gui/universal_widgets/change_metadata_widget/change_metadata_widget.rb +2 -2
- data/lib/multimedia_paradise/gui/universal_widgets/information_about_a_mp3_file/information_about_a_mp3_file.rb +1 -1
- data/lib/multimedia_paradise/gui/universal_widgets/lyrics/lyrics.rb +1 -1
- data/lib/multimedia_paradise/gui/universal_widgets/multimedia_converter/multimedia_converter.rb +589 -0
- data/lib/multimedia_paradise/gui/universal_widgets/playlist/playlist.rb +197 -0
- data/lib/multimedia_paradise/gui/universal_widgets/radio/radio.rb +1 -1
- data/lib/multimedia_paradise/gui/{gtk2 → universal_widgets}/simple_play_widget/README.md +1 -1
- data/lib/multimedia_paradise/gui/universal_widgets/simple_play_widget/simple_play_widget.rb +404 -0
- data/lib/multimedia_paradise/gui/universal_widgets/tag_mp3_files/tag_mp3_files.rb +3 -6
- data/lib/multimedia_paradise/java/Playlist.class +0 -0
- data/lib/multimedia_paradise/java/Playlist.java +198 -0
- data/lib/multimedia_paradise/multimedia/analyse_multimedia_file.rb +21 -19
- data/lib/multimedia_paradise/multimedia/avisynth/avisynth_code.avs +441 -442
- data/lib/multimedia_paradise/multimedia/base.rb +0 -18
- data/lib/multimedia_paradise/multimedia/chord.rb +1 -1
- data/lib/multimedia_paradise/multimedia/cut_multimedia/cut_multimedia.rb +7 -5
- data/lib/multimedia_paradise/multimedia/cut_multimedia/evaluate_from_this_file.rb +2 -2
- data/lib/multimedia_paradise/multimedia/interactive_shell.rb +22 -3
- data/lib/multimedia_paradise/multimedia/merge_multimedia.rb +4 -3
- data/lib/multimedia_paradise/multimedia/play_from_this_list.rb +4 -27
- data/lib/multimedia_paradise/multimedia/{read_meta_tags.rb → read_meta_tags/read_meta_tags.rb} +14 -19
- data/lib/multimedia_paradise/multimedia/start_length_duration.rb +3 -3
- data/lib/multimedia_paradise/project/project.rb +8 -4
- data/lib/multimedia_paradise/requires/require_the_multimedia_paradise_project.rb +5 -5
- data/lib/multimedia_paradise/requires/require_toplevel_methods_files.rb +1 -1
- data/lib/multimedia_paradise/sinatra/app.rb +3 -3
- data/lib/multimedia_paradise/statistics/README.md +6 -5
- data/lib/multimedia_paradise/statistics/video.rb +34 -14
- data/lib/multimedia_paradise/{misc → time}/long_format_to_milliseconds_converter.rb +4 -2
- data/lib/multimedia_paradise/{misc → time}/milliseconds_to_long_format_converter.rb +2 -2
- data/lib/multimedia_paradise/toplevel_methods/audio_related_code.rb +138 -0
- data/lib/multimedia_paradise/toplevel_methods/chop_into_segments_of_n_seconds_size.rb +2 -2
- data/lib/multimedia_paradise/{conversions → toplevel_methods}/conversions.rb +140 -48
- data/lib/multimedia_paradise/toplevel_methods/copy_and_merge_this_video_n_times.rb +5 -5
- data/lib/multimedia_paradise/toplevel_methods/create_video_from_this_audio.rb +7 -6
- data/lib/multimedia_paradise/toplevel_methods/cut_from_to.rb +2 -2
- data/lib/multimedia_paradise/toplevel_methods/denoise.rb +2 -2
- data/lib/multimedia_paradise/toplevel_methods/deshake.rb +3 -6
- data/lib/multimedia_paradise/toplevel_methods/{output_directory.rb → directory_related_code.rb} +38 -1
- data/lib/multimedia_paradise/toplevel_methods/encode_this_video.rb +8 -4
- data/lib/multimedia_paradise/toplevel_methods/esystem.rb +43 -4
- data/lib/multimedia_paradise/{ffmpeg → toplevel_methods}/ffmpeg.rb +200 -193
- data/lib/multimedia_paradise/toplevel_methods/{files_and_directories.rb → files_related_code.rb} +19 -56
- data/lib/multimedia_paradise/toplevel_methods/flip_and_rotate.rb +3 -3
- data/lib/multimedia_paradise/toplevel_methods/is_audio_file_is_video_file_is_image_file_is_multimedia_file.rb +115 -0
- data/lib/multimedia_paradise/toplevel_methods/is_on_roebe.rb +1 -1
- data/lib/multimedia_paradise/toplevel_methods/{merge_multimedia_file.rb → merge.rb} +98 -4
- data/lib/multimedia_paradise/toplevel_methods/opn.rb +5 -4
- data/lib/multimedia_paradise/toplevel_methods/player_in_use.rb +14 -7
- data/lib/multimedia_paradise/toplevel_methods/query_the_audio_codec_of_this_file.rb +4 -3
- data/lib/multimedia_paradise/toplevel_methods/radio.rb +1 -3
- data/lib/multimedia_paradise/toplevel_methods/return_all_video_files.rb +4 -4
- data/lib/multimedia_paradise/toplevel_methods/return_path_to_random_simpsons_video_file.rb +1 -1
- data/lib/multimedia_paradise/toplevel_methods/return_random_video_file_from_the_video_collection.rb +9 -7
- data/lib/multimedia_paradise/toplevel_methods/scale_video.rb +3 -4
- data/lib/multimedia_paradise/toplevel_methods/set_title_of.rb +6 -6
- data/lib/multimedia_paradise/{help/help.rb → toplevel_methods/show_help.rb} +14 -8
- data/lib/multimedia_paradise/toplevel_methods/slow_down_this_video_file.rb +2 -3
- data/lib/multimedia_paradise/toplevel_methods/start_screencast.rb +3 -2
- data/lib/multimedia_paradise/toplevel_methods/{misc.rb → toplevel_methods.rb} +485 -527
- data/lib/multimedia_paradise/toplevel_methods/total_duration.rb +4 -3
- data/lib/multimedia_paradise/toplevel_methods/use_lame_codec.rb +1 -2
- data/lib/multimedia_paradise/toplevel_methods/video_dataset.rb +1 -1
- data/lib/multimedia_paradise/version/version.rb +2 -2
- data/lib/multimedia_paradise/video/all_videos.rb +12 -19
- data/lib/multimedia_paradise/video/check_numbers.rb +76 -32
- data/lib/multimedia_paradise/video/columbo/columbo.rb +36 -14
- data/lib/multimedia_paradise/video/guess_video_name.rb +2 -10
- data/lib/multimedia_paradise/video/mike_hammer/mike_hammer.rb +2 -2
- data/lib/multimedia_paradise/video/missing_video_files/missing_video_files.rb +1 -9
- data/lib/multimedia_paradise/video/movie_searcher.rb +2 -10
- data/lib/multimedia_paradise/video/mplayer_wrapper.rb +1 -9
- data/lib/multimedia_paradise/video/random_video.rb +1 -2
- data/lib/multimedia_paradise/video/registered_video_file.rb +2 -10
- data/lib/multimedia_paradise/video/report_local_videos.rb +1 -9
- data/lib/multimedia_paradise/video/simpsons.rb +2 -10
- data/lib/multimedia_paradise/video/smart_animals/smart_animals.rb +10 -8
- data/lib/multimedia_paradise/video/speed_up_video.rb +28 -10
- data/lib/multimedia_paradise/video/store_available_video_files.rb +49 -33
- data/lib/multimedia_paradise/video/the_simpsons/README.md +0 -0
- data/lib/multimedia_paradise/video/the_simpsons/good_the_simpsons_episodes.rb +8 -8
- data/lib/multimedia_paradise/video/the_simpsons/the_simpsons.rb +14 -10
- data/lib/multimedia_paradise/video/video_information.rb +55 -49
- data/lib/multimedia_paradise/{configuration → yaml/configuration}/play_zoomed.yml +0 -0
- data/lib/multimedia_paradise/yaml/{playlist.yml → playlist/playlist.yml} +14 -15
- data/lib/multimedia_paradise/yaml/video/video.yml +1 -1
- data/lib/multimedia_paradise/yaml/video_collection/video_collection.yml +34 -32
- data/lib/multimedia_paradise/yaml/youtube/alltagsgeschichte/alltagsgeschichte.yml +61 -11
- data/lib/multimedia_paradise/yaml/youtube/songs/songs.yml +5 -3
- data/multimedia_paradise.gemspec +1 -1
- data/test/testing_audio_player.rb +3 -3
- data/test/testing_file_duration.rb +5 -5
- metadata +45 -76
- data/lib/multimedia_paradise/audio/file_duration/constants.rb +0 -53
- data/lib/multimedia_paradise/audio/waveform/class.rb +0 -341
- data/lib/multimedia_paradise/audio/waveform/constants.rb +0 -38
- data/lib/multimedia_paradise/audio/waveform/log.rb +0 -101
- data/lib/multimedia_paradise/base/constants.rb +0 -19
- data/lib/multimedia_paradise/base/encoding.rb +0 -31
- data/lib/multimedia_paradise/base/misc.rb +0 -665
- data/lib/multimedia_paradise/base/namespace.rb +0 -36
- data/lib/multimedia_paradise/base/time.rb +0 -25
- data/lib/multimedia_paradise/constants/conversions.rb +0 -62
- data/lib/multimedia_paradise/constants/directory_constants.rb +0 -139
- data/lib/multimedia_paradise/constants/encodings.rb +0 -26
- data/lib/multimedia_paradise/constants/file_constants.rb +0 -176
- data/lib/multimedia_paradise/constants/misc.rb +0 -80
- data/lib/multimedia_paradise/constants/my_video_directory.rb +0 -30
- data/lib/multimedia_paradise/constants/namespace.rb +0 -14
- data/lib/multimedia_paradise/constants/newline.rb +0 -14
- data/lib/multimedia_paradise/constants/video_filetypes.rb +0 -27
- data/lib/multimedia_paradise/conversions/README.md +0 -2
- data/lib/multimedia_paradise/ffmpeg/README.md +0 -2
- data/lib/multimedia_paradise/gui/gtk2/multimedia_converter/multimedia_converter.rb +0 -33
- data/lib/multimedia_paradise/gui/gtk2/notebook.rb +0 -144
- data/lib/multimedia_paradise/gui/gtk2/play_video_from_my_collection/play_video_from_my_collection.rb +0 -43
- data/lib/multimedia_paradise/gui/gtk2/simple_play_widget/simple_play_widget.rb +0 -40
- data/lib/multimedia_paradise/gui/gtk2/widget_increase_or_decrease_audio/widget_increase_or_decrease_audio.rb +0 -42
- data/lib/multimedia_paradise/gui/gtk2/youtube_downloader/youtube_downloader.rb +0 -32
- data/lib/multimedia_paradise/gui/gtk3/lyrics/lyrics.rb +0 -0
- data/lib/multimedia_paradise/gui/gtk3/multimedia_converter/multimedia_converter.rb +0 -34
- data/lib/multimedia_paradise/gui/gtk3/playlist/playlist.rb +0 -34
- data/lib/multimedia_paradise/gui/gtk3/simple_play_widget/simple_play_widget.rb +0 -38
- data/lib/multimedia_paradise/toplevel_methods/analyze_audio_stream.rb +0 -31
- data/lib/multimedia_paradise/toplevel_methods/codecs.rb +0 -50
- data/lib/multimedia_paradise/toplevel_methods/copy_file.rb +0 -18
- data/lib/multimedia_paradise/toplevel_methods/delay_audio.rb +0 -31
- data/lib/multimedia_paradise/toplevel_methods/ensure_that_the_output_directory_exists.rb +0 -27
- data/lib/multimedia_paradise/toplevel_methods/has_audio.rb +0 -48
- data/lib/multimedia_paradise/toplevel_methods/increase_volume_of_this_audio_file.rb +0 -61
- data/lib/multimedia_paradise/toplevel_methods/is_a_multimedia_file.rb +0 -27
- data/lib/multimedia_paradise/toplevel_methods/is_audio_file.rb +0 -27
- data/lib/multimedia_paradise/toplevel_methods/is_image_file.rb +0 -31
- data/lib/multimedia_paradise/toplevel_methods/is_video_file.rb +0 -62
- data/lib/multimedia_paradise/toplevel_methods/merge_these_videos.rb +0 -106
- data/lib/multimedia_paradise/toplevel_methods/run_sys_command.rb +0 -30
- data/lib/multimedia_paradise/toplevel_methods/to_flac.rb +0 -30
- data/lib/multimedia_paradise/toplevel_methods/to_mp4.rb +0 -24
- /data/doc/{MergingVideoLectures.md → merging_video_lectures/merging_video_lectures.md} +0 -0
- /data/doc/{Readme_for_the_cut_audio_component.md → readme_for_the_cut_audio_component/Readme_for_the_cut_audio_component.md} +0 -0
- /data/lib/multimedia_paradise/yaml/{audio_formats.yml → audio_formats/audio_formats.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{image_formats.yml → image_formats/image_formats.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{lyrics.yml → lyrics/lyrics.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{music_genres.yml → music_genres/music_genres.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{song_tags.yml → song_tags/song_tags.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{use_this_video_player.yml → use_this_video_player/use_this_video_player.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{video_encoding_settings.yml → video_encoding_settings/video_encoding_settings.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{video_filter_aliases.yml → video_filter_aliases/video_filter_aliases.yml} +0 -0
@@ -0,0 +1,198 @@
|
|
1
|
+
import java.io.*;
|
2
|
+
import java.io.File;
|
3
|
+
import java.io.IOException;
|
4
|
+
import java.lang.Runtime;
|
5
|
+
|
6
|
+
import java.io.IOException;
|
7
|
+
import java.nio.file.Files;
|
8
|
+
import java.nio.file.Path;
|
9
|
+
|
10
|
+
import java.util.Random;
|
11
|
+
import java.util.Arrays;
|
12
|
+
|
13
|
+
import java.util.regex.Matcher;
|
14
|
+
import java.util.regex.Pattern;
|
15
|
+
|
16
|
+
public class Playlist {
|
17
|
+
|
18
|
+
public static String[] commandline_arguments;
|
19
|
+
|
20
|
+
public static final String PLAYLIST_FILE =
|
21
|
+
"/home/x/programming/ruby/src/multimedia_paradise/lib/multimedia_paradise/yaml/playlist/playlist.yml";
|
22
|
+
|
23
|
+
public static String[] commandline_arguments() {
|
24
|
+
return commandline_arguments;
|
25
|
+
}
|
26
|
+
|
27
|
+
public Playlist() {
|
28
|
+
parse_the_commandline_arguments(
|
29
|
+
Playlist.commandline_arguments()
|
30
|
+
);
|
31
|
+
run();
|
32
|
+
}
|
33
|
+
void show_help() {
|
34
|
+
en("No help options have been documented so far.");
|
35
|
+
}
|
36
|
+
|
37
|
+
/*
|
38
|
+
* is_a_number()
|
39
|
+
*/
|
40
|
+
boolean is_a_number(String i) {
|
41
|
+
Pattern pattern = Pattern.compile("-?\\d+(\\.\\d+)?");
|
42
|
+
if (i == null) {
|
43
|
+
return false;
|
44
|
+
}
|
45
|
+
return pattern.matcher(i).matches();
|
46
|
+
}
|
47
|
+
|
48
|
+
/*
|
49
|
+
* parse_the_commandline_arguments(); (menu tag)
|
50
|
+
*/
|
51
|
+
void parse_the_commandline_arguments(String[] commandline_arguments) {
|
52
|
+
if (commandline_arguments.length > 0) {
|
53
|
+
for (String entry : commandline_arguments) {
|
54
|
+
/* System.out.println(entry); for debugging */
|
55
|
+
if ("--help".equals(entry)) {
|
56
|
+
show_help();
|
57
|
+
System.exit(1);
|
58
|
+
}
|
59
|
+
else if (is_a_number(entry)) {
|
60
|
+
String[] all_songs = return_all_songs();
|
61
|
+
String this_song = all_songs[Integer.parseInt(entry) - 1];
|
62
|
+
play(
|
63
|
+
this_song.replace(" ","").
|
64
|
+
replace("-","").
|
65
|
+
replace("\"","")
|
66
|
+
);
|
67
|
+
}
|
68
|
+
}
|
69
|
+
}
|
70
|
+
}
|
71
|
+
|
72
|
+
/*
|
73
|
+
* run() (def run)
|
74
|
+
*
|
75
|
+
*/
|
76
|
+
void run() {
|
77
|
+
complex_show_the_content_of_the_playlist(); /* Misnomer name here */
|
78
|
+
}
|
79
|
+
/*
|
80
|
+
* en()
|
81
|
+
*/
|
82
|
+
void en(String i) {
|
83
|
+
System.out.println(i);
|
84
|
+
}
|
85
|
+
|
86
|
+
/*
|
87
|
+
* en()
|
88
|
+
*/
|
89
|
+
void en() {
|
90
|
+
System.out.println("");
|
91
|
+
}
|
92
|
+
|
93
|
+
/*
|
94
|
+
* DIRECTORY_CONTAINING_ALL_SONGS
|
95
|
+
*/
|
96
|
+
public static final String DIRECTORY_CONTAINING_ALL_SONGS =
|
97
|
+
"/home/x/songs/";
|
98
|
+
|
99
|
+
public static void e(int i) {
|
100
|
+
System.out.print(i);
|
101
|
+
}
|
102
|
+
|
103
|
+
public static void newline() {
|
104
|
+
System.out.println();
|
105
|
+
}
|
106
|
+
|
107
|
+
public static void e(String i) {
|
108
|
+
System.out.print(i);
|
109
|
+
}
|
110
|
+
void pp(String[] array) {
|
111
|
+
System.out.println(
|
112
|
+
Arrays.toString(array)
|
113
|
+
);
|
114
|
+
};
|
115
|
+
|
116
|
+
|
117
|
+
/*
|
118
|
+
* show_the_content_of_the_playlist()
|
119
|
+
*/
|
120
|
+
void show_the_content_of_the_playlist() {
|
121
|
+
try
|
122
|
+
{
|
123
|
+
String x = PLAYLIST_FILE;
|
124
|
+
Path this_path = Path.of(x);
|
125
|
+
String content = Files.readString(this_path);
|
126
|
+
e(content);
|
127
|
+
}
|
128
|
+
catch(IOException error) {
|
129
|
+
en("Something went wrong.");
|
130
|
+
}
|
131
|
+
}
|
132
|
+
|
133
|
+
String[] return_all_songs() {
|
134
|
+
String x = PLAYLIST_FILE;
|
135
|
+
try
|
136
|
+
{
|
137
|
+
Path this_path = Path.of(x);
|
138
|
+
String content = Files.readString(this_path);
|
139
|
+
String[] lines = content.split(System.lineSeparator());
|
140
|
+
return lines;
|
141
|
+
}
|
142
|
+
catch(IOException error)
|
143
|
+
{
|
144
|
+
en("Something went wrong (line 64)");
|
145
|
+
}
|
146
|
+
return null;
|
147
|
+
}
|
148
|
+
|
149
|
+
/*
|
150
|
+
* complex_show_the_content_of_the_playlist()
|
151
|
+
*/
|
152
|
+
void complex_show_the_content_of_the_playlist() {
|
153
|
+
String x = PLAYLIST_FILE;
|
154
|
+
en("Obtaining all entries\nfrom "+x+"\n next.");
|
155
|
+
|
156
|
+
/*show_the_content_of_the_playlist();*/
|
157
|
+
String[] lines = return_all_songs();
|
158
|
+
String[] new_lines = new String[lines.length];
|
159
|
+
int index = 0;
|
160
|
+
for (String entry: lines) {
|
161
|
+
/*System.out.println(entry);*/
|
162
|
+
new_lines[index] = entry.
|
163
|
+
replace("-","").
|
164
|
+
replace(" ","").
|
165
|
+
replace("\"","");
|
166
|
+
index += 1;
|
167
|
+
}
|
168
|
+
int random_element = new Random().nextInt(new_lines.length);
|
169
|
+
String sample = new_lines[random_element];
|
170
|
+
play_this_file(sample);
|
171
|
+
}
|
172
|
+
|
173
|
+
/*
|
174
|
+
* play_this_file()
|
175
|
+
*/
|
176
|
+
void play_this_file(String i) {
|
177
|
+
en("Will play:\n");
|
178
|
+
en(" "+i);
|
179
|
+
en();
|
180
|
+
Runtime runtime = Runtime.getRuntime();
|
181
|
+
try {
|
182
|
+
String use_this_command = "mpv "+i;
|
183
|
+
Process process = runtime.exec(use_this_command);
|
184
|
+
process.waitFor();
|
185
|
+
} catch(Exception error) {
|
186
|
+
error.printStackTrace();
|
187
|
+
}
|
188
|
+
}
|
189
|
+
void play(String this_song) {
|
190
|
+
play_this_file(this_song);
|
191
|
+
}
|
192
|
+
|
193
|
+
public static void main(String[] args) { /* main tag */
|
194
|
+
commandline_arguments = args;
|
195
|
+
Playlist playlist = new Playlist();
|
196
|
+
}
|
197
|
+
|
198
|
+
}
|
@@ -44,6 +44,7 @@ class AnalyseMultimediaFile < ::MultimediaParadise::Base # === MultimediaParadis
|
|
44
44
|
# ========================================================================= #
|
45
45
|
def reset
|
46
46
|
super()
|
47
|
+
infer_the_namespace
|
47
48
|
# ======================================================================= #
|
48
49
|
# === @left_pad_n_times
|
49
50
|
# ======================================================================= #
|
@@ -54,20 +55,23 @@ class AnalyseMultimediaFile < ::MultimediaParadise::Base # === MultimediaParadis
|
|
54
55
|
# === opnn
|
55
56
|
# ========================================================================= #
|
56
57
|
def opnn(&block)
|
57
|
-
super(
|
58
|
+
super(namespace?, &block)
|
58
59
|
end
|
59
60
|
|
60
61
|
# ========================================================================= #
|
61
62
|
# === process_the_input
|
62
63
|
# ========================================================================= #
|
63
|
-
def process_the_input
|
64
|
-
|
64
|
+
def process_the_input(
|
65
|
+
i = commandline_arguments?
|
66
|
+
)
|
67
|
+
i.each {|this_file|
|
65
68
|
if is_a_multimedia_file?(this_file)
|
66
69
|
opnn { :no_colon }
|
67
70
|
e
|
68
71
|
e
|
69
|
-
e
|
70
|
-
|
72
|
+
e "The multimedia file #{sfile(this_file)}#{rev} "\
|
73
|
+
"will be analysed"
|
74
|
+
e "next, via #{orange('ffmpeg')}#{rev}."
|
71
75
|
e
|
72
76
|
cmd = "ffmpeg -i #{this_file} 2>&1"
|
73
77
|
e slateblue(" #{cmd}")
|
@@ -75,8 +79,8 @@ class AnalyseMultimediaFile < ::MultimediaParadise::Base # === MultimediaParadis
|
|
75
79
|
result = `#{cmd}`
|
76
80
|
analyze_this_result(result)
|
77
81
|
else
|
78
|
-
|
79
|
-
|
82
|
+
opne sfile(this_file)+rev+' can not be analysed as it is not a (registered)'
|
83
|
+
opne 'audio/video (multimedia) file.'
|
80
84
|
end
|
81
85
|
}
|
82
86
|
end
|
@@ -108,21 +112,19 @@ class AnalyseMultimediaFile < ::MultimediaParadise::Base # === MultimediaParadis
|
|
108
112
|
i =~ /Duration: ([0-9:.]{2,12}),/ # See: https://rubular.com/r/Rq5lAuQnJUfiZd
|
109
113
|
@duration = $1.to_s.dup
|
110
114
|
n_seconds = return_this_duration_in_seconds(@duration)
|
111
|
-
e 'The duration is: '.ljust(@left_pad_n_times)+
|
112
|
-
lightgreen(@duration)+
|
113
|
-
|
114
|
-
|
115
|
+
e rev+'The duration is: '.ljust(@left_pad_n_times)+
|
116
|
+
lightgreen(@duration)+
|
117
|
+
rev+
|
118
|
+
" (#{olive(n_seconds.to_s)} #{rev}seconds)"
|
115
119
|
end
|
116
120
|
# ======================================================================= #
|
117
121
|
# === Stream #0:0:
|
118
122
|
# ======================================================================= #
|
119
123
|
if i.include? 'Stream #0:0:'
|
120
|
-
if i.include?
|
124
|
+
if i.include?('x') and (i =~ / (\d{1,3})x(\d{1,3}) /)
|
121
125
|
results = i.scan(/ (\d{1,3})x(\d{1,3}) /)
|
122
|
-
e 'Video resolution is: '.ljust(@left_pad_n_times)+
|
123
|
-
lightgreen(
|
124
|
-
results.flatten.join('x').to_s
|
125
|
-
)
|
126
|
+
e rev+'Video resolution is: '.ljust(@left_pad_n_times)+
|
127
|
+
lightgreen(results.flatten.join('x').to_s)
|
126
128
|
end
|
127
129
|
# if i.include? 'Video:'
|
128
130
|
# e 'Codec: '.ljust(@left_pad_n_times)+
|
@@ -134,12 +136,12 @@ class AnalyseMultimediaFile < ::MultimediaParadise::Base # === MultimediaParadis
|
|
134
136
|
# ENCODER : Lavf58.29.100
|
135
137
|
# ===================================================================== #
|
136
138
|
scanned_result = i.scan(/ENCODER\s*: (.+)/).flatten.first
|
137
|
-
e 'The encoder is: '.ljust(@left_pad_n_times)+
|
139
|
+
e rev+'The encoder is: '.ljust(@left_pad_n_times)+
|
138
140
|
lightgreen(scanned_result)
|
139
141
|
end
|
140
142
|
if i.include? ': Audio: mp3, '
|
141
|
-
e 'The file includes an audio stream '\
|
142
|
-
|
143
|
+
e rev+'The file includes an audio stream '\
|
144
|
+
"(#{royalblue('mp3 format')}#{rev})."
|
143
145
|
end
|
144
146
|
end
|
145
147
|
|