Improves reading of input
This commit is contained in:
parent
104d9ccb4b
commit
0a39a69e73
@ -6,7 +6,8 @@
|
||||
</artifacts-to-build>
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="e9b48a04-29ff-46ce-9630-42742dc34d68" name="Default" comment="Adds surround to stereo">
|
||||
<list default="true" id="e9b48a04-29ff-46ce-9630-42742dc34d68" name="Default" comment="Improves reading of input">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/ffmpegconverter/Main.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/ffmpegconverter/Main.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/ffmpegconverter/converter/AnimeConverter.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/ffmpegconverter/converter/AnimeConverter.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/ffmpegconverter/converter/Converter.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/ffmpegconverter/converter/Converter.java" afterDir="false" />
|
||||
@ -31,24 +32,21 @@
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/ffmpegconverter/converter/Converter.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="2907">
|
||||
<caret line="178" column="13" selection-start-line="178" selection-start-column="13" selection-end-line="178" selection-end-column="13" />
|
||||
<state relative-caret-position="187">
|
||||
<caret line="320" column="66" selection-start-line="320" selection-start-column="66" selection-end-line="320" selection-end-column="66" />
|
||||
<folding>
|
||||
<element signature="e#12992#12993#0" expanded="true" />
|
||||
<element signature="e#13075#13076#0" expanded="true" />
|
||||
<element signature="e#13124#13125#0" expanded="true" />
|
||||
<element signature="e#13187#13188#0" expanded="true" />
|
||||
<element signature="imports" expanded="true" />
|
||||
<element signature="method#concatenate#0;class#Converter#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="true">
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/ffmpegconverter/converter/AnimeConverter.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="65">
|
||||
<caret line="14" column="59" selection-start-line="14" selection-start-column="59" selection-end-line="14" selection-end-column="59" />
|
||||
<state relative-caret-position="249">
|
||||
<caret line="116" column="57" selection-start-line="116" selection-start-column="57" selection-end-line="116" selection-end-column="57" />
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
@ -68,19 +66,15 @@
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<file pinned="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/src/ffmpegconverter/Main.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="272">
|
||||
<caret line="25" column="10" selection-start-line="25" selection-start-column="10" selection-end-line="25" selection-end-column="10" />
|
||||
<state relative-caret-position="231">
|
||||
<caret line="149" column="31" lean-forward="true" selection-start-line="149" selection-start-column="31" selection-end-line="149" selection-end-column="31" />
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
<element signature="method#testArgumentValue#0;class#converterArgument#0;class#Main#0" />
|
||||
<element signature="method#tokenizer#0;class#Main#0" />
|
||||
<element signature="method#animeConverter#0;class#Main#0" />
|
||||
<element signature="method#getList#0;class#Main#0" />
|
||||
<element signature="method#readInput#0;class#Main#0" />
|
||||
<element signature="method#getChoice#0;class#Main#0" />
|
||||
<element signature="method#getChoice#1;class#Main#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
@ -109,6 +103,9 @@
|
||||
<find>listSubtitlesRelative</find>
|
||||
<find>debug</find>
|
||||
<find>isimage</find>
|
||||
<find>jap</find>
|
||||
<find>listFilesRec</find>
|
||||
<find>readInput</find>
|
||||
</findStrings>
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
@ -119,17 +116,16 @@
|
||||
<option name="CHANGED_PATHS">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/src/ffmpegconverter/converter/VideoConverter.java" />
|
||||
<option value="$PROJECT_DIR$/src/ffmpegconverter/Main.java" />
|
||||
<option value="$PROJECT_DIR$/src/ffmpegconverter/converter/Converter.java" />
|
||||
<option value="$PROJECT_DIR$/src/ffmpegconverter/converter/AnimeConverter.java" />
|
||||
<option value="$PROJECT_DIR$/src/ffmpegconverter/converter/Converter.java" />
|
||||
<option value="$PROJECT_DIR$/src/ffmpegconverter/Main.java" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="ProjectFrameBounds" extendedState="6">
|
||||
<option name="x" value="-8" />
|
||||
<option name="y" value="-8" />
|
||||
<option name="x" value="-7" />
|
||||
<option name="width" value="974" />
|
||||
<option name="height" value="728" />
|
||||
<option name="height" value="1047" />
|
||||
</component>
|
||||
<component name="ProjectView">
|
||||
<navigator proportions="" version="1">
|
||||
@ -143,6 +139,24 @@
|
||||
<item name="FFmpegConvert1" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="FFmpegConvert1" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="FFmpegConvert1" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="FFmpegConvert1" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="out" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="FFmpegConvert1" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="FFmpegConvert1" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="out" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="artifacts" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="FFmpegConvert1" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="FFmpegConvert1" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="out" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="artifacts" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="FFmpegConvert" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="FFmpegConvert1" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="FFmpegConvert1" type="462c0819:PsiDirectoryNode" />
|
||||
@ -172,7 +186,7 @@
|
||||
<component name="PropertiesComponent">
|
||||
<property name="WebServerToolWindowFactoryState" value="false" />
|
||||
<property name="aspect.path.notification.shown" value="true" />
|
||||
<property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1559848538589" />
|
||||
<property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1566327893996" />
|
||||
<property name="last_opened_file_path" value="$PROJECT_DIR$/../rogue-one-oh-one" />
|
||||
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
|
||||
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
|
||||
@ -317,7 +331,10 @@
|
||||
<workItem from="1558270332068" duration="1231000" />
|
||||
<workItem from="1559411406801" duration="621000" />
|
||||
<workItem from="1559765370819" duration="3857000" />
|
||||
<workItem from="1560477751040" duration="642000" />
|
||||
<workItem from="1560477751040" duration="2758000" />
|
||||
<workItem from="1561162925209" duration="2043000" />
|
||||
<workItem from="1561850923206" duration="1264000" />
|
||||
<workItem from="1566295287966" duration="2888000" />
|
||||
</task>
|
||||
<task id="LOCAL-00001" summary="Adds missing files">
|
||||
<created>1538261222377</created>
|
||||
@ -351,7 +368,7 @@
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TimeTrackingManager">
|
||||
<option name="totallyTimeSpent" value="97157000" />
|
||||
<option name="totallyTimeSpent" value="105468000" />
|
||||
</component>
|
||||
<component name="TodoView">
|
||||
<todo-panel id="selected-file">
|
||||
@ -364,8 +381,9 @@
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
|
||||
<editor active="true" />
|
||||
<layout>
|
||||
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.1098081" />
|
||||
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.1130064" />
|
||||
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
|
||||
<window_info id="Image Layers" order="2" />
|
||||
<window_info id="Designer" order="3" />
|
||||
@ -374,17 +392,17 @@
|
||||
<window_info id="Favorites" order="6" side_tool="true" />
|
||||
<window_info anchor="bottom" id="Message" order="0" />
|
||||
<window_info anchor="bottom" id="Find" order="1" />
|
||||
<window_info active="true" anchor="bottom" id="Run" order="2" sideWeight="0.75054705" visible="true" weight="0.7659805" />
|
||||
<window_info anchor="bottom" id="Run" order="2" sideWeight="0.75054705" weight="0.48754063" />
|
||||
<window_info anchor="bottom" id="Debug" order="3" sideWeight="0.49895614" weight="0.39869988" />
|
||||
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
|
||||
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
|
||||
<window_info anchor="bottom" id="TODO" order="6" sideWeight="0.49946696" weight="0.32936078" />
|
||||
<window_info anchor="bottom" id="Version Control" order="7" sideWeight="0.4989059" weight="0.32932165" />
|
||||
<window_info anchor="bottom" id="Version Control" order="7" sideWeight="0.4989059" weight="0.32827735" />
|
||||
<window_info anchor="bottom" id="Database Changes" order="8" show_stripe_button="false" />
|
||||
<window_info anchor="bottom" id="Statistic" order="9" sideWeight="0.49946696" weight="0.32936078" />
|
||||
<window_info anchor="bottom" id="Terminal" order="10" sideWeight="0.4989059" weight="0.32932165" />
|
||||
<window_info anchor="bottom" id="Terminal" order="10" sideWeight="0.4989059" weight="0.32827735" />
|
||||
<window_info anchor="bottom" id="Event Log" order="11" sideWeight="0.24945295" side_tool="true" weight="0.47811815" />
|
||||
<window_info anchor="bottom" id="Messages" order="12" sideWeight="0.49840087" weight="0.33152762" />
|
||||
<window_info active="true" anchor="bottom" id="Messages" order="12" sideWeight="0.49840087" visible="true" weight="0.32827735" />
|
||||
<window_info anchor="bottom" id="Docker" order="13" show_stripe_button="false" />
|
||||
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
|
||||
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
|
||||
@ -406,7 +424,8 @@
|
||||
<MESSAGE value="Hopefully fixes issues #1 and #2 File collision handling similar to windows" />
|
||||
<MESSAGE value="Adds hardsubbing of subtitles with same name as video file Better file collision detection Adds debug mode to only render part of the video" />
|
||||
<MESSAGE value="Adds surround to stereo" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="Adds surround to stereo" />
|
||||
<MESSAGE value="Improves reading of input" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="Improves reading of input" />
|
||||
</component>
|
||||
<component name="editorHistoryManager">
|
||||
<entry file="file://$PROJECT_DIR$/misc.xml" />
|
||||
@ -425,20 +444,6 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/ffmpegconverter/converter/Converter.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="2907">
|
||||
<caret line="178" column="13" selection-start-line="178" selection-start-column="13" selection-end-line="178" selection-end-column="13" />
|
||||
<folding>
|
||||
<element signature="e#12992#12993#0" expanded="true" />
|
||||
<element signature="e#13075#13076#0" expanded="true" />
|
||||
<element signature="e#13124#13125#0" expanded="true" />
|
||||
<element signature="e#13187#13188#0" expanded="true" />
|
||||
<element signature="method#concatenate#0;class#Converter#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/ffmpegconverter/converter/AudioConverter.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="34">
|
||||
@ -449,22 +454,6 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/ffmpegconverter/Main.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="272">
|
||||
<caret line="25" column="10" selection-start-line="25" selection-start-column="10" selection-end-line="25" selection-end-column="10" />
|
||||
<folding>
|
||||
<element signature="method#testArgumentValue#0;class#converterArgument#0;class#Main#0" />
|
||||
<element signature="method#tokenizer#0;class#Main#0" />
|
||||
<element signature="method#animeConverter#0;class#Main#0" />
|
||||
<element signature="method#getList#0;class#Main#0" />
|
||||
<element signature="method#readInput#0;class#Main#0" />
|
||||
<element signature="method#getChoice#0;class#Main#0" />
|
||||
<element signature="method#getChoice#1;class#Main#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/ffmpegconverter/converter/VideoConverter.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="731">
|
||||
@ -477,12 +466,35 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/ffmpegconverter/converter/AnimeConverter.java">
|
||||
<entry file="file://$PROJECT_DIR$/src/ffmpegconverter/converter/Converter.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="65">
|
||||
<caret line="14" column="59" selection-start-line="14" selection-start-column="59" selection-end-line="14" selection-end-column="59" />
|
||||
<state relative-caret-position="187">
|
||||
<caret line="320" column="66" selection-start-line="320" selection-start-column="66" selection-end-line="320" selection-end-column="66" />
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
<element signature="method#concatenate#0;class#Converter#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/ffmpegconverter/converter/AnimeConverter.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="249">
|
||||
<caret line="116" column="57" selection-start-line="116" selection-start-column="57" selection-end-line="116" selection-end-column="57" />
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/ffmpegconverter/Main.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="231">
|
||||
<caret line="149" column="31" lean-forward="true" selection-start-line="149" selection-start-column="31" selection-end-line="149" selection-end-column="31" />
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
<element signature="method#testArgumentValue#0;class#converterArgument#0;class#Main#0" />
|
||||
<element signature="method#getList#0;class#Main#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
|
@ -15,9 +15,9 @@ import java.util.function.Predicate;
|
||||
* Converts a files or files in a folder to a web playable mp4.
|
||||
*/
|
||||
public class Main {
|
||||
private static final String FFPROBE_PATH = "C:\\Users\\Kristian\\Downloads\\ffmpeg-20190427-8019395-win64-static\\bin\\ffprobe.exe"; //Can be just ffprobe if it's in the path
|
||||
private static final String FFMPEG_PATH = "C:\\Users\\Kristian\\Downloads\\ffmpeg-20190427-8019395-win64-static\\bin\\ffmpeg.exe"; //Can be just ffmpeg if it's in the path
|
||||
private static Scanner in = new Scanner(System.in);
|
||||
private static final String FFPROBE_PATH = "ffprobe"; //Can be just ffprobe if it's in the path
|
||||
private static final String FFMPEG_PATH = "ffmpeg"; //Can be just ffmpeg if it's in the path
|
||||
private static Scanner in = new Scanner(System.in, "UTF-8");
|
||||
private static Converter con = null;
|
||||
|
||||
public static void main(String[] args) throws IOException {
|
||||
@ -68,8 +68,10 @@ public class Main {
|
||||
} else {
|
||||
System.out.println("No valid files found in folder.");
|
||||
}
|
||||
} else {
|
||||
} else if (folder.exists()) {
|
||||
con.convert(folder);
|
||||
} else {
|
||||
System.out.println("Path " + folder.getAbsolutePath() + " does not point to any file or folder.");
|
||||
}
|
||||
}
|
||||
|
||||
@ -142,7 +144,7 @@ public class Main {
|
||||
|
||||
private static List<String> tokenizer(String input) {
|
||||
List<String> tokens = new ArrayList<>();
|
||||
Boolean startedQuote = false;
|
||||
boolean startedQuote = false;
|
||||
StringBuilder currentToken = new StringBuilder();
|
||||
for (int i = 0; i < input.length(); i++) {
|
||||
char c = input.charAt(i);
|
||||
@ -179,7 +181,7 @@ public class Main {
|
||||
}
|
||||
|
||||
private static void animeConverter() {
|
||||
System.out.println("[Audio languages jap,eng,ger,fre] [Subtitle languages eng,ger,fre] [Convert to stereo if necessary true/false] [Prevent signs&songs subtitles true/false]\nYour input: ");
|
||||
System.out.println("[Audio languages jpn,eng,ger,fre] [Subtitle languages eng,ger,fre] [Convert to stereo if necessary true/false] [Prevent signs&songs subtitles true/false]\nYour input: ");
|
||||
List<String> input = readInput(4);
|
||||
String[] audioLang = new String[]{"jpn"};
|
||||
String[] subtitleLang = new String[]{"eng"};
|
||||
@ -213,20 +215,12 @@ public class Main {
|
||||
}
|
||||
|
||||
private static List<String> readInput(int max) {
|
||||
List<String> input = new ArrayList<>();
|
||||
String rx = "[^\"\\s]+|\"(\\\\.|[^\\\\\"])*\"";
|
||||
for (int i = 0; i < max; i++) {
|
||||
String line = in.findInLine(rx);
|
||||
if (line != null) {
|
||||
if (line.startsWith("\"") && line.endsWith("\"")) {
|
||||
input.add(line.substring(1, line.length() - 1));
|
||||
} else {
|
||||
input.add(line);
|
||||
List<String> tokens = tokenizer(in.nextLine());
|
||||
if (max < tokens.size()) {
|
||||
throw new IllegalArgumentException("Input contains " + tokens.size() +
|
||||
" arguments, but the input only supports " + max + " arguments.");
|
||||
}
|
||||
}
|
||||
}
|
||||
in.nextLine();
|
||||
return input;
|
||||
return tokens;
|
||||
}
|
||||
|
||||
private static String getChoice(String prompt) {
|
||||
|
@ -96,8 +96,8 @@ public class AnimeConverter extends Converter {
|
||||
subtitleStreams = listSubtitlesRelative(streams);
|
||||
subtitleStreamsAbsolute = listSubtitles(streams);
|
||||
} else if (preventSignsAndSongs) {
|
||||
subtitleStreams = listSubtitlesRelative(streams, lang, new String[]{"title=Signs"});
|
||||
subtitleStreamsAbsolute = listSubtitles(streams, lang, new String[]{"title=Signs"});
|
||||
subtitleStreams = listSubtitlesRelative(streams, lang, new String[]{"title=Signs", "Signs/Songs"});
|
||||
subtitleStreamsAbsolute = listSubtitles(streams, lang, new String[]{"title=Signs", "Signs/Songs"});
|
||||
} else {
|
||||
subtitleStreams = listSubtitlesRelative(streams, lang);
|
||||
subtitleStreamsAbsolute = listSubtitles(streams, lang);
|
||||
|
@ -120,6 +120,8 @@ public abstract class Converter {
|
||||
command.add("" + length);
|
||||
}
|
||||
|
||||
//TODO: Create a new object for subtitle containing language, relative index, absolute index and codec. Also signs & songs.
|
||||
|
||||
/**
|
||||
* Checks for the occurrence of otf attachments signifying the existence of image based subtitles.
|
||||
*
|
||||
@ -316,7 +318,7 @@ public abstract class Converter {
|
||||
}
|
||||
int endPos = string.indexOf(end, startPos);
|
||||
String outString = string.substring(startPos, endPos).trim();
|
||||
String nextString = string.substring(endPos + end.length(), string.length());
|
||||
String nextString = string.substring(endPos + end.length());
|
||||
return concatenate(new String[]{outString}, stringBetween(nextString, start, end));
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user