X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2FMain.java;h=06287f1236457860b833399274933202db9e7a55;hb=b2612f9dcd0a37f4ec22fcabe55390280e06daf2;hp=e6f584f30388a29e530e4310caeef742ebd11454;hpb=bf45069c19a37c659d7c734d2552b58f3526107e;p=nikiroo-utils.git diff --git a/src/be/nikiroo/fanfix/Main.java b/src/be/nikiroo/fanfix/Main.java index e6f584f..06287f1 100644 --- a/src/be/nikiroo/fanfix/Main.java +++ b/src/be/nikiroo/fanfix/Main.java @@ -14,8 +14,9 @@ import be.nikiroo.fanfix.reader.BasicReader; import be.nikiroo.fanfix.reader.BasicReader.ReaderType; import be.nikiroo.fanfix.supported.BasicSupport; import be.nikiroo.fanfix.supported.BasicSupport.SupportType; +import be.nikiroo.utils.Progress; +import be.nikiroo.utils.Version; import be.nikiroo.utils.ui.UIUtils; -import be.nikiroo.utils.ui.Progress; /** * Main program entry point. @@ -24,7 +25,7 @@ import be.nikiroo.utils.ui.Progress; */ public class Main { private enum MainAction { - IMPORT, EXPORT, CONVERT, READ, READ_URL, LIST, HELP, SET_READER, START, + IMPORT, EXPORT, CONVERT, READ, READ_URL, LIST, HELP, SET_READER, START, VERSION, } /** @@ -35,8 +36,8 @@ public class Main { *
  • NOUTF: if set to 1 or 'true', the program will prefer non-unicode * {@link String}s when possible
  • *
  • CONFIG_DIR: a path where to look for the .properties files - * before taking the included ones; they will also be saved/updated into - * this path when the program starts
  • + * before taking the usual ones; they will also be saved/updated into this + * path when the program starts *
  • DEBUG: if set to 1 or 'true', the program will override the DEBUG_ERR * configuration value with 'true'
  • * @@ -53,6 +54,7 @@ public class Main { *
  • --list ([type]): list the stories present in the library
  • *
  • --set-reader [reader type]: set the reader type to CLI or LOCAL for * this command
  • + *
  • --version: get the version of the program
  • * * * @param args @@ -159,6 +161,8 @@ public class Main { case START: exitCode = 255; // not supposed to be selected by user break; + case VERSION: + exitCode = 255; // no arguments for this option } } @@ -212,6 +216,13 @@ public class Main { break; case SET_READER: break; + case VERSION: + System.out + .println(String.format("Fanfix version %s" + + "\nhttps://github.com/nikiroo/fanfix/" + + "\n\tWritten by Nikiroo", + Version.getCurrentVersion())); + break; case START: UIUtils.setLookAndFeel(); BasicReader.setDefaultReaderType(ReaderType.LOCAL); @@ -229,34 +240,6 @@ public class Main { } } - /** - * Return an {@link URL} from this {@link String}, be it a file path or an - * actual {@link URL}. - * - * @param sourceString - * the source - * - * @return the corresponding {@link URL} - * - * @throws MalformedURLException - * if this is neither a file nor a conventional {@link URL} - */ - private static URL getUrl(String sourceString) throws MalformedURLException { - if (sourceString == null || sourceString.isEmpty()) { - throw new MalformedURLException("Empty url"); - } - - URL source = null; - try { - source = new URL(sourceString); - } catch (MalformedURLException e) { - File sourceFile = new File(sourceString); - source = sourceFile.toURI().toURL(); - } - - return source; - } - /** * Import the given resource into the {@link Library}. * @@ -269,7 +252,8 @@ public class Main { */ public static int imprt(String urlString, Progress pg) { try { - Story story = Instance.getLibrary().imprt(getUrl(urlString), pg); + Story story = Instance.getLibrary().imprt( + BasicReader.getUrl(urlString), pg); System.out.println(story.getMeta().getLuid() + ": \"" + story.getMeta().getTitle() + "\" imported."); } catch (IOException e) { @@ -349,7 +333,7 @@ public class Main { if (library) { reader.setStory(story, null); } else { - reader.setStory(getUrl(story), null); + reader.setStory(BasicReader.getUrl(story), null); } if (chapString != null) { @@ -394,7 +378,7 @@ public class Main { String sourceName = urlString; try { - URL source = getUrl(urlString); + URL source = BasicReader.getUrl(urlString); sourceName = source.toString(); if (source.toString().startsWith("file://")) { sourceName = sourceName.substring("file://".length()); @@ -411,12 +395,19 @@ public class Main { BasicSupport support = BasicSupport.getSupport(source); if (support != null) { - Story story = support.process(source, pg); + Progress pgIn = new Progress(); + Progress pgOut = new Progress(); + if (pg != null) { + pg.setMax(2); + pg.addProgress(pgIn, 1); + pg.addProgress(pgOut, 1); + } + Story story = support.process(source, pgIn); try { target = new File(target).getAbsolutePath(); BasicOutput.getOutput(type, infoCover).process( - story, target); + story, target, pgOut); } catch (IOException e) { Instance.syserr(new IOException(trans( StringId.ERR_SAVING, target), e)); @@ -476,7 +467,7 @@ public class Main { for (OutputType type : OutputType.values()) { builder.append(trans(StringId.ERR_SYNTAX_TYPE, type.toString(), - type.getDesc())); + type.getDesc(true))); builder.append('\n'); }