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;
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;
mainProgress.addProgressListener(new Progress.ProgressListener() {
private int current = mainProgress.getMin();
+ @Override
public void progress(Progress progress, String name) {
int diff = progress.getProgress() - current;
current += diff;
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:
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:
}
return;
case REMOTE:
- exitCode = 255;
+ exitCode = 255; // should not be reachable (REMOTE -> START)
break;
}
}
*/
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)));
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)));