+ @Meta(description = "The directory where to store the library (can be overriden by the environment variable \"BOOKS_DIR\"; any relative path uses the applciation config directory as base, $HOME notation is supported, / is always accepted as directory separator",//
+ format = Format.DIRECTORY, def = "$HOME/Books/")
+ LIBRARY_DIR, //
+
+ @Meta(description = "Remote library\nA remote library can be configured to fetch the stories from a remote Fanfix server",//
+ group = true)
+ REMOTE_LIBRARY, //
+ @Meta(description = "Use the remote Fanfix server configured here instead of the local library (if FALSE, the local library will be used instead)",//
+ format = Format.BOOLEAN, def = "false")
+ REMOTE_LIBRARY_ENABLED, //
+ @Meta(description = "The remote Fanfix server to connect to (fanfix://, http://, https:// -- if not specified, fanfix:// is assumed)",//
+ format = Format.STRING)
+ REMOTE_LIBRARY_HOST, //
+ @Meta(description = "The port to use for the remote Fanfix server",//
+ format = Format.INT, def = "58365")
+ REMOTE_LIBRARY_PORT, //
+ @Meta(description = "The key is structured: \"KEY|SUBKEY|wl|rw\"\n- \"KEY\" is the actual encryption key (it can actually be empty, which will still encrypt the messages but of course it will be easier to guess the key)\n- \"SUBKEY\" is the (optional) subkey to use to get additional privileges\n- \"wl\" is a special privilege that allows that subkey to ignore white lists\n- \"rw\" is a special privilege that allows that subkey to modify the library, even if it is not in RW (by default) mode\n\nSome examples:\n- \"super-secret\": a normal key, no special privileges\n- \"you-will-not-guess|azOpd8|wl\": a white-list ignoring key\n- \"new-password|subpass|rw\": a key that allows modifications on the library",//
+ format = Format.PASSWORD)
+ REMOTE_LIBRARY_KEY, //
+
+ @Meta(description = "Network configuration",//
+ group = true)
+ NETWORK, //
+ @Meta(description = "The user-agent to use to download files",//
+ def = "Mozilla/5.0 (X11; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0 -- ELinks/0.9.3 (Linux 2.6.11 i686; 80x24) -- Fanfix (https://github.com/nikiroo/fanfix/)")
+ NETWORK_USER_AGENT, //
+ @Meta(description = "The proxy server to use under the format 'user:pass@proxy:port', 'user@proxy:port', 'proxy:port' or ':' alone (system proxy); an empty String means no proxy",//
+ format = Format.STRING, def = "")
+ NETWORK_PROXY, //
+ @Meta(description = "If the last update check was done at least that many days ago, check for updates at startup (-1 for 'no checks')", //
+ format = Format.INT, def = "1")
+ NETWORK_UPDATE_INTERVAL, //
+
+ @Meta(description = "Remote Server configuration\nNote that the key is structured: \"KEY|SUBKEY|wl|rw\"\n- \"KEY\" is the actual encryption key (it can actually be empty, which will still encrypt the messages but of course it will be easier to guess the key)\n- \"SUBKEY\" is the (optional) subkey to use to get additional privileges\n- \"wl\" is a special privilege that allows that subkey to ignore white lists\n- \"rw\" is a special privilege that allows that subkey to modify the library, even if it is not in RW (by default) mode\n\nSome examples:\n- \"super-secret\": a normal key, no special privileges\n- \"you-will-not-guess|azOpd8|wl\": a white-list ignoring key\n- \"new-password|subpass|rw\": a key that allows modifications on the library",//
+ group = true)
+ SERVER, //
+ @Meta(description = "Remote Server mode: you can use the fanfix protocol (which is encrypted), http (which is not) or https (which requires a keystore.jks file)",//
+ format = Format.FIXED_LIST, list = { "fanfix", "http", "https" }, def = "fanfix")
+ SERVER_MODE,
+ @Meta(description = "The port on which we can start the server (must be a valid port, from 1 to 65535)", //
+ format = Format.INT, def = "58365")