X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2FMain.java;h=69a7a7c39fb0440889867484de560ecade457c59;hb=ff05b8284e6e415b13d3543650075d0f7cd27ff5;hp=9ac48845ce87d4bc57416bfd2daf7e7f30fa4364;hpb=211f7ddb50f68aa8a999023ef6d63d5756bdace6;p=nikiroo-utils.git diff --git a/src/be/nikiroo/fanfix/Main.java b/src/be/nikiroo/fanfix/Main.java index 9ac4884..69a7a7c 100644 --- a/src/be/nikiroo/fanfix/Main.java +++ b/src/be/nikiroo/fanfix/Main.java @@ -5,9 +5,12 @@ import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; +import be.nikiroo.fanfix.bundles.Config; import be.nikiroo.fanfix.bundles.StringId; import be.nikiroo.fanfix.data.Chapter; import be.nikiroo.fanfix.data.Story; +import be.nikiroo.fanfix.library.BasicLibrary; +import be.nikiroo.fanfix.library.CacheLibrary; import be.nikiroo.fanfix.library.LocalLibrary; import be.nikiroo.fanfix.library.RemoteLibrary; import be.nikiroo.fanfix.library.RemoteLibraryServer; @@ -185,8 +188,13 @@ public class Main { host = args[i]; } else if (port == null) { port = Integer.parseInt(args[i]); - BasicReader - .setDefaultLibrary(new RemoteLibrary(host, port)); + + File remoteCacheDir = Instance.getRemoteDir(host); + BasicLibrary lib = new RemoteLibrary(host, port); + lib = new CacheLibrary(remoteCacheDir, lib); + + BasicReader.setDefaultLibrary(lib); + action = MainAction.START; } else { exitCode = 255; @@ -253,12 +261,30 @@ public class Main { updates.ok(); // we consider it read break; case LIST: + if (BasicReader.getReader() == null) { + Instance.syserr(new Exception( + "No reader type has been configured")); + exitCode = 10; + break; + } exitCode = list(sourceString); break; case READ: + if (BasicReader.getReader() == null) { + Instance.syserr(new Exception( + "No reader type has been configured")); + exitCode = 10; + break; + } exitCode = read(luid, chapString, true); break; case READ_URL: + if (BasicReader.getReader() == null) { + Instance.syserr(new Exception( + "No reader type has been configured")); + exitCode = 10; + break; + } exitCode = read(urlString, chapString, false); break; case HELP: @@ -277,6 +303,12 @@ public class Main { updates.ok(); // we consider it read break; case START: + if (BasicReader.getReader() == null) { + Instance.syserr(new Exception( + "No reader type has been configured")); + exitCode = 10; + break; + } BasicReader.getReader().browse(null); break; case SERVER: @@ -293,7 +325,7 @@ public class Main { } return; case REMOTE: - exitCode = 255; + exitCode = 255; // should not be reachable (REMOTE -> START) break; } } @@ -348,7 +380,7 @@ public class Main { */ public static int export(String luid, String typeString, String target, Progress pg) { - OutputType type = OutputType.valueOfNullOkUC(typeString); + OutputType type = OutputType.valueOfNullOkUC(typeString, null); if (type == null) { Instance.syserr(new Exception(trans(StringId.OUTPUT_DESC, typeString))); @@ -453,7 +485,7 @@ public class Main { sourceName = sourceName.substring("file://".length()); } - OutputType type = OutputType.valueOfAllOkUC(typeString); + OutputType type = OutputType.valueOfAllOkUC(typeString, null); if (type == null) { Instance.syserr(new IOException(trans( StringId.ERR_BAD_OUTPUT_TYPE, typeString)));