</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
- <orderEntry type="library" name="Maven: eu.svjatoslav:svjatoslavcommons:1.6-SNAPSHOT" level="project" />
+ <orderEntry type="library" name="Maven: eu.svjatoslav:svjatoslavcommons:1.7-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: log4j:log4j:1.2.16" level="project" />
</component>
</module>
\ No newline at end of file
<dependency>
<groupId>eu.svjatoslav</groupId>
<artifactId>svjatoslavcommons</artifactId>
- <version>1.6-SNAPSHOT</version>
+ <version>1.7-SNAPSHOT</version>
</dependency>
<dependency>
modules.add(new eu.svjatoslav.meviz.htmlindexer.Main());
modules.add(new eu.svjatoslav.meviz.renamer.Main());
modules.add(new eu.svjatoslav.meviz.grabmemcard.Main());
- modules.add(new eu.svjatoslav.meviz.texttruncate.Main());
- modules.add(new eu.svjatoslav.meviz.textsplitter.Main());
modules.add(new eu.svjatoslav.meviz.bomremove.Main());
modules.add(new eu.svjatoslav.meviz.replace.Main());
}
private List<String> getSupportedExtensions() {
return toList("mkv", "mts", "mp4", "avi", "mpg", "mpeg", "vob", "m4v",
- "webm", "mov", "asf");
+ "webm", "mov", "asf", "3gp");
}
@Override
+++ /dev/null
-/*
- * Meviz - Various tools collection to work with multimedia.
- * Copyright (C) 2012 -- 2017, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public License
- * as published by the Free Software Foundation.
- */
-
-package eu.svjatoslav.meviz.textsplitter;
-
-import eu.svjatoslav.commons.commandline.parameterparser.Parser;
-import eu.svjatoslav.commons.commandline.parameterparser.parameter.DirectoryParameter;
-import eu.svjatoslav.commons.commandline.parameterparser.parameter.NullParameter;
-import eu.svjatoslav.commons.commandline.parameterparser.parameter.StringParameters;
-
-import java.io.File;
-
-class CommandlineHandler {
-
- final Parser parser = new Parser();
-
- private final NullParameter recursiveParameter = parser.add(
- new NullParameter("Enable recursive mode.")).addAliases("-r",
- "--recursive");
-
- private final StringParameters fileInputPatternsParameter = parser.add(
- new StringParameters("File input pattern.").addAliases("-i",
- "--input-pattern")).setMandatory();
-
- private final StringParameters splitPatternsParameter = parser
- .add(new StringParameters("File split regular expression."))
- .addAliases("-s", "--split-pattern").setMandatory();
-
- private final DirectoryParameter workingDirectoryParameter = parser.add(
- new DirectoryParameter("Working directory.")).addAliases("-w",
- "--working-directory");
-
- public TextSplittingOptions parseCommandlineArguments(final String[] args) {
-
- final TextSplittingOptions options = new TextSplittingOptions();
-
- if (!parser.parse(args))
- return null;
-
- if (recursiveParameter.isSpecified())
- options.recursive = true;
-
- if (workingDirectoryParameter.isSpecified())
- options.targetDirectory = workingDirectoryParameter.getValue();
- else
- options.targetDirectory = new File(System.getProperty("user.dir"));
-
- if (fileInputPatternsParameter.isSpecified())
- options.fileInputPatterns.addAll(fileInputPatternsParameter
- .getValue());
-
- if (splitPatternsParameter.isSpecified())
- options.textSplitPatterns.addAll(splitPatternsParameter.getValue());
-
- return options;
- }
-}
+++ /dev/null
-/*
- * Meviz - Various tools collection to work with multimedia.
- * Copyright (C) 2012 -- 2017, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public License
- * as published by the Free Software Foundation.
- */
-
-package eu.svjatoslav.meviz.textsplitter;
-
-import eu.svjatoslav.commons.file.FilePathParser;
-import eu.svjatoslav.commons.string.String2;
-import eu.svjatoslav.commons.string.WildCardMatcher;
-import eu.svjatoslav.meviz.Module;
-
-import java.io.*;
-
-public class Main implements Module {
-
- private final CommandlineHandler commandlineHandler = new CommandlineHandler();
-
- private TextSplittingOptions options;
-
- private boolean fileMatchesInputPattern(final File file) {
- final String fileName = file.getName().toLowerCase();
-
- for (final String inputPattern : options.fileInputPatterns)
- if (WildCardMatcher.match(fileName, inputPattern.toLowerCase()))
- return true;
-
- return false;
- }
-
- @Override
- public String getDescription() {
- return "Split text with long lines into multiple shorter lines.";
- }
-
- @Override
- public String getModuleCommand() {
- return "splittext";
- }
-
- private File getTargetFile(final File sourceFile) {
- final StringBuilder targetFilePath = new StringBuilder();
- targetFilePath.append(sourceFile.getParent());
- targetFilePath.append("/");
- targetFilePath.append(FilePathParser
- .getFileNameWithoutExtension(sourceFile));
-
- targetFilePath.append(".splitted");
-
- // add file extension
- {
- final String fileExtension = FilePathParser
- .getFileExtension(sourceFile);
-
- if (fileExtension.length() > 0)
- targetFilePath.append("." + fileExtension);
- }
- return new File(targetFilePath.toString());
- }
-
- private void processDirectory(final File directory) {
-
- for (final File subFile : directory.listFiles())
- if (subFile.isDirectory()) {
- if (options.recursive)
- processDirectory(subFile);
- } else if (fileMatchesInputPattern(subFile))
- try {
- processFile(subFile);
- } catch (final IOException exception) {
- System.out.println("Error processing file: "
- + subFile.getAbsolutePath());
- System.out.println(" exception: "
- + exception.getMessage());
- }
-
- }
-
- private void processFile(final File file) throws IOException {
- final File targetFile = getTargetFile(file);
-
- final BufferedReader bufferedReader = new BufferedReader(
- new FileReader(file));
-
- final BufferedWriter bufferedWriter = new BufferedWriter(
- new FileWriter(targetFile));
-
- while (true) {
- final String readLine = bufferedReader.readLine();
- if (readLine == null)
- break;
-
- final String2 cuttableString = new String2(readLine);
-
- while (!cuttableString.isEmpty()) {
- for (final String pattern : options.textSplitPatterns)
- if (WildCardMatcher.match(cuttableString.toString(),
- pattern))
- bufferedWriter.write("\n");
-
- final String character = cuttableString.trimLeft(1);
- bufferedWriter.append(character);
- }
-
- bufferedWriter.write("\n");
- }
-
- bufferedReader.close();
- bufferedWriter.close();
- }
-
- @Override
- public void run(final String[] args) throws IOException {
-
- options = commandlineHandler.parseCommandlineArguments(args);
-
- if (options == null) {
- showCommandlineHelp();
- return;
- }
-
- processDirectory(options.targetDirectory);
-
- }
-
- @Override
- public void showCommandlineHelp() {
- commandlineHandler.parser.showHelp();
- }
-
-}
+++ /dev/null
-/*
- * Meviz - Various tools collection to work with multimedia.
- * Copyright (C) 2012 -- 2017, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public License
- * as published by the Free Software Foundation.
- */
-
-package eu.svjatoslav.meviz.textsplitter;
-
-import java.io.File;
-import java.util.ArrayList;
-
-public class TextSplittingOptions {
-
- public final ArrayList<String> fileInputPatterns = new ArrayList<>();
-
- public final ArrayList<String> textSplitPatterns = new ArrayList<>();
-
- public boolean recursive = false;
-
- public File targetDirectory;
-
-}
+++ /dev/null
-/*
- * Meviz - Various tools collection to work with multimedia.
- * Copyright (C) 2012 -- 2017, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public License
- * as published by the Free Software Foundation.
- */
-
-package eu.svjatoslav.meviz.texttruncate;
-
-import eu.svjatoslav.commons.commandline.parameterparser.Parser;
-import eu.svjatoslav.commons.commandline.parameterparser.parameter.DirectoryParameter;
-import eu.svjatoslav.commons.commandline.parameterparser.parameter.NullParameter;
-import eu.svjatoslav.commons.commandline.parameterparser.parameter.StringParameters;
-
-import java.io.File;
-
-class CommandlineHandler {
-
- final Parser parser = new Parser();
-
- private final NullParameter recursiveParameter = parser.add(
- new NullParameter("Enable recursive mode.")).addAliases("-r",
- "--recursive");
-
- private final StringParameters inputPatternParameter = parser.add(
- new StringParameters("File input pattern.")).addAliases("-i",
- "--input-pattern");
-
- private final DirectoryParameter workingDirectoryParameter = parser.add(
- new DirectoryParameter("Working directory.")).addAliases("-w",
- "--working-directory");
-
- public TextTruncatingOptions parseCommandlineArguments(final String[] args) {
-
- final TextTruncatingOptions options = new TextTruncatingOptions();
-
- if (!parser.parse(args))
- return null;
-
- if (recursiveParameter.isSpecified())
- options.recursive = true;
-
- if (workingDirectoryParameter.isSpecified())
- options.targetDirectory = workingDirectoryParameter.getValue();
- else
- options.targetDirectory = new File(System.getProperty("user.dir"));
-
- if (inputPatternParameter.isSpecified())
- options.inputPatterns.addAll(inputPatternParameter.getValue());
-
- return options;
- }
-}
+++ /dev/null
-/*
- * Meviz - Various tools collection to work with multimedia.
- * Copyright (C) 2012 -- 2017, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public License
- * as published by the Free Software Foundation.
- */
-
-package eu.svjatoslav.meviz.texttruncate;
-
-import eu.svjatoslav.commons.file.FilePathParser;
-import eu.svjatoslav.commons.string.String2;
-import eu.svjatoslav.commons.string.WildCardMatcher;
-import eu.svjatoslav.meviz.Module;
-
-import java.io.*;
-
-public class Main implements Module {
-
- private static final int targetLineLength = 200;
-
- private static final int maxSplittedLines = 3;
-
- private static final String splitLinePrefix = " ";
-
- private final CommandlineHandler commandlineHandler = new CommandlineHandler();
-
- private TextTruncatingOptions options;
-
- private boolean fileMatchesInputPattern(final File file) {
- final String fileName = file.getName().toLowerCase();
-
- for (final String inputPattern : options.inputPatterns)
- if (WildCardMatcher.match(fileName, inputPattern.toLowerCase()))
- return true;
-
- return false;
- }
-
- @Override
- public String getDescription() {
- return "Truncate text with long lines into multiple shorter lines.";
- }
-
- @Override
- public String getModuleCommand() {
- return "trunctext";
- }
-
- private File getTargetFile(final File sourceFile) {
- final StringBuilder targetFilePath = new StringBuilder();
- targetFilePath.append(sourceFile.getParent());
- targetFilePath.append("/");
- targetFilePath.append(FilePathParser
- .getFileNameWithoutExtension(sourceFile));
-
- targetFilePath.append(".truncated");
-
- // add file extension
- {
- final String fileExtension = FilePathParser
- .getFileExtension(sourceFile);
-
- if (fileExtension.length() > 0)
- targetFilePath.append("." + fileExtension);
- }
- return new File(targetFilePath.toString());
- }
-
- private void processDirectory(final File directory) {
-
- for (final File subFile : directory.listFiles())
- if (subFile.isDirectory()) {
- if (options.recursive)
- processDirectory(subFile);
- } else if (fileMatchesInputPattern(subFile))
- try {
- processFile(subFile);
- } catch (final IOException exception) {
- System.out.println("Error processing file: "
- + subFile.getAbsolutePath());
- System.out.println(" exception: "
- + exception.getMessage());
- }
-
- }
-
- private void processFile(final File file) throws IOException {
- final File targetFile = getTargetFile(file);
-
- final BufferedReader bufferedReader = new BufferedReader(
- new FileReader(file));
-
- final BufferedWriter bufferedWriter = new BufferedWriter(
- new FileWriter(targetFile));
-
- while (true) {
- final String readLine = bufferedReader.readLine();
- if (readLine == null)
- break;
-
- if (readLine.length() <= targetLineLength)
- bufferedWriter.write(readLine + "\n");
- else {
-
- final String2 cuttableString = new String2(readLine);
-
- bufferedWriter.write(cuttableString.trimLeft(targetLineLength)
- + "\n");
-
- int splittedLinesCount = 0;
-
- while (!cuttableString.isEmpty()) {
- splittedLinesCount++;
- if (splittedLinesCount >= maxSplittedLines)
- break;
-
- bufferedWriter.write(splitLinePrefix
- + cuttableString.trimLeft(targetLineLength
- - splitLinePrefix.length()) + "\n");
- }
- }
-
- }
-
- bufferedReader.close();
- bufferedWriter.close();
- }
-
- @Override
- public void run(final String[] args) throws IOException {
-
- options = commandlineHandler.parseCommandlineArguments(args);
-
- if (options == null) {
- showCommandlineHelp();
- return;
- }
-
- processDirectory(options.targetDirectory);
-
- }
-
- @Override
- public void showCommandlineHelp() {
- commandlineHandler.parser.showHelp();
- }
-
-}
+++ /dev/null
-/*
- * Meviz - Various tools collection to work with multimedia.
- * Copyright (C) 2012 -- 2017, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public License
- * as published by the Free Software Foundation.
- */
-
-package eu.svjatoslav.meviz.texttruncate;
-
-import java.io.File;
-import java.util.ArrayList;
-
-public class TextTruncatingOptions {
-
- public final ArrayList<String> inputPatterns = new ArrayList<>();
-
- public boolean recursive = false;
-
- public File targetDirectory;
-
-}