import be.nikiroo.fanfix.bundles.UiConfigBundle;
import be.nikiroo.fanfix.library.BasicLibrary;
import be.nikiroo.fanfix.library.LocalLibrary;
+import be.nikiroo.fanfix.library.RemoteLibrary;
import be.nikiroo.utils.Cache;
import be.nikiroo.utils.IOUtils;
import be.nikiroo.utils.TraceHandler;
private static UiConfigBundle uiconfig;
private static StringIdBundle trans;
private static DataLoader cache;
- private static LocalLibrary lib;
+ private static BasicLibrary lib;
private static File coverDir;
private static File readerTmp;
private static File remoteDir;
tracer = new TraceHandler(true, debug, trace);
- try {
- lib = new LocalLibrary(getFile(Config.LIBRARY_DIR));
- } catch (Exception e) {
- tracer.error(new IOException(
- "Cannot create library for directory: "
- + getFile(Config.LIBRARY_DIR), e));
+ String remoteLib = config.getString(Config.DEFAULT_LIBRARY);
+ if (remoteLib == null || remoteLib.trim().isEmpty()) {
+ try {
+ lib = new LocalLibrary(getFile(Config.LIBRARY_DIR));
+ } catch (Exception e) {
+ tracer.error(new IOException(
+ "Cannot create library for directory: "
+ + getFile(Config.LIBRARY_DIR), e));
+ }
+ } else {
+ int pos = remoteLib.lastIndexOf(":");
+ if (pos >= 0) {
+ String port = remoteLib.substring(pos + 1).trim();
+ remoteLib = remoteLib.substring(0, pos);
+ pos = remoteLib.lastIndexOf(":");
+ if (pos >= 0) {
+ String host = remoteLib.substring(pos + 1).trim();
+ String key = remoteLib.substring(0, pos).trim();
+
+ try {
+ tracer.trace("Contacting remote library " + host + ":"
+ + port);
+ lib = new RemoteLibrary(key, host,
+ Integer.parseInt(port));
+ } catch (Exception e) {
+ }
+ }
+ }
+
+ if (lib == null) {
+ tracer.error(new IOException(
+ "Cannot create remote library for: "
+ + getFile(Config.DEFAULT_LIBRARY)));
+ }
}
// Could have used: System.getProperty("java.io.tmpdir")
USER_AGENT, //
@Meta(description = "absolute path, $HOME variable supported, / is always accepted as dir separator", format = Format.DIRECTORY, info = "The directory where to get the default story covers")
DEFAULT_COVERS_DIR, //
+ @Meta(description = "string", info = "The default library to use (KEY:SERVER:PORT), or empty for the local library")
+ DEFAULT_LIBRARY, //
@Meta(description = "absolute path, $HOME variable supported, / is always accepted as dir separator", format = Format.DIRECTORY, info = "The directory where to store the library")
LIBRARY_DIR, //
@Meta(description = "boolean", format = Format.BOOLEAN, info = "Show debug information on errors")
# absolute path, $HOME variable supported, / is always accepted as dir separator
# (FORMAT: DIRECTORY) The directory where to get the default story covers
DEFAULT_COVERS_DIR = $HOME/bin/epub/
+# string (FORMAT: STRING) The default library to use (KEY:SERVER:PORT), or empty for the local library
+DEFAULT_LIBRARY =
# absolute path, $HOME variable supported, / is always accepted as dir separator
# (FORMAT: DIRECTORY) The directory where to store the library
LIBRARY_DIR = $HOME/Books