change config names
authorNiki Roo <niki@nikiroo.be>
Wed, 22 May 2019 08:04:24 +0000 (10:04 +0200)
committerNiki Roo <niki@nikiroo.be>
Wed, 22 May 2019 08:04:24 +0000 (10:04 +0200)
14 files changed:
src/be/nikiroo/fanfix/DataLoader.java
src/be/nikiroo/fanfix/Instance.java
src/be/nikiroo/fanfix/bundles/Config.java
src/be/nikiroo/fanfix/library/LocalLibrary.java
src/be/nikiroo/fanfix/output/Epub.java
src/be/nikiroo/fanfix/output/Html.java
src/be/nikiroo/fanfix/output/InfoCover.java
src/be/nikiroo/fanfix/output/LaTeX.java
src/be/nikiroo/fanfix/supported/BasicSupportHelper.java
src/be/nikiroo/fanfix/supported/BasicSupportPara.java
src/be/nikiroo/fanfix/supported/BasicSupport_Deprecated.java
src/be/nikiroo/fanfix/supported/Fanfiction.java
src/be/nikiroo/fanfix/supported/InfoReader.java
src/be/nikiroo/fanfix/supported/Text.java

index abc958501a9fcf04e80be952de2c8ec92e59b6b9..0abb323b69a5cbb63b489b4e0fe243b90a64651c 100644 (file)
@@ -278,11 +278,11 @@ public class DataLoader {
                        throws IOException {
                String format;
                if (cover) {
-                       format = Instance.getConfig().getString(Config.IMAGE_FORMAT_COVER)
+                       format = Instance.getConfig().getString(Config.FILE_FORMAT_IMAGE_FORMAT_COVER)
                                        .toLowerCase();
                } else {
                        format = Instance.getConfig()
-                                       .getString(Config.IMAGE_FORMAT_CONTENT).toLowerCase();
+                                       .getString(Config.FILE_FORMAT_IMAGE_FORMAT_CONTENT).toLowerCase();
                }
                saveAsImage(img, new File(target.toString() + "." + format), format);
        }
index b7a284ccbb82e11c760c6b5973faacbc3bc2b14f..74897491f7a0b93c60893b828fac0ec82ef5111a 100644 (file)
@@ -93,7 +93,7 @@ public class Instance {
                createConfigs(configDir, false);
 
                // Proxy support
-               Proxy.use(Instance.getConfig().getString(Config.USE_PROXY));
+               Proxy.use(Instance.getConfig().getString(Config.NETWORK_PROXY));
 
                // update tracer:
                if (debug == null) {
@@ -114,7 +114,7 @@ public class Instance {
                }
                Image.setTemporaryFilesRoot(new File(tmp.getParent(), "tmp.images"));
 
-               String ua = config.getString(Config.USER_AGENT, "");
+               String ua = config.getString(Config.NETWORK_USER_AGENT, "");
                try {
                        int hours = config.getInteger(Config.CACHE_MAX_TIME_CHANGING, 0);
                        int hoursLarge = config.getInteger(Config.CACHE_MAX_TIME_STABLE, 0);
@@ -325,7 +325,7 @@ public class Instance {
         */
        public static boolean isVersionCheckNeeded() {
                try {
-                       long wait = config.getInteger(Config.UPDATE_INTERVAL, 0) * 24 * 60
+                       long wait = config.getInteger(Config.NETWORK_UPDATE_INTERVAL, 0) * 24 * 60
                                        * 60 * 1000;
                        if (wait >= 0) {
                                String lastUpString = IOUtils.readSmallFile(new File(configDir,
index 028f9650a23890bf1cde919b8f495239c7414cfa..e62a524663970f699a203f4bd681aab718ec93b1 100644 (file)
@@ -10,18 +10,32 @@ import be.nikiroo.utils.resources.Meta.Format;
  */
 @SuppressWarnings("javadoc")
 public enum Config {
-       @Meta(description = "The language (example: en-GB, fr-BE...) or nothing for default system language (can be overwritten with the variable $LANG)",//
+       @Meta(description = "The language to use for in the program (example: en-GB, fr-BE...) or nothing for default system language (can be overwritten with the variable $LANG)",//
        format = Format.LOCALE)
        LANG, //
        @Meta(description = "The default reader type to use to read stories:\nCLI = simple output to console\nTUI = a Text User Interface with menus and windows, based upon Jexer\nGUI = a GUI with locally stored files, based upon Swing", //
        format = Format.FIXED_LIST, list = { "CLI", "GUI", "TUI" }, def = "GUI")
        READER_TYPE, //
-       @Meta(description = "The type of output for the Local Reader for non-images documents",//
+
+       @Meta(description = "File format options",//
+       group = true)
+       FILE_FORMAT, //
+       @Meta(description = "How to save non-images documents in the library",//
        format = Format.FIXED_LIST, list = { "INFO_TEXT", "EPUB", "HTML", "TEXT" }, def = "INFO_TEXT")
-       NON_IMAGES_DOCUMENT_TYPE, //
-       @Meta(description = "The type of output for the Local Reader for non-images documents",//
+       FILE_FORMAT_NON_IMAGES_DOCUMENT_TYPE, //
+       @Meta(description = "How to save images documents in the library",//
        format = Format.FIXED_LIST, list = { "CBZ", "HTML" }, def = "CBZ")
-       IMAGES_DOCUMENT_TYPE, //
+       FILE_FORMAT_IMAGES_DOCUMENT_TYPE, //
+       @Meta(description = "How to save cover images",//
+       format = Format.FIXED_LIST, list = { "PNG", "JPG", "BMP" }, def = "PNG")
+       FILE_FORMAT_IMAGE_FORMAT_COVER, //
+       @Meta(description = "How to save content images",//
+       format = Format.FIXED_LIST, list = { "PNG", "JPG", "BMP" }, def = "JPG")
+       FILE_FORMAT_IMAGE_FORMAT_CONTENT, //
+
+       @Meta(description = "Cache management",//
+       group = true)
+       CACHE, //
        @Meta(description = "The directory where to store temporary files; any relative path uses the applciation config directory as base, $HOME notation is supported, / is always accepted as directory separator",//
        format = Format.DIRECTORY, def = "tmp/")
        CACHE_DIR, //
@@ -31,15 +45,33 @@ public enum Config {
        @Meta(description = "The delay in hours after which a cached resource that is thought to change rarely is considered too old and triggers a refresh delay (or 0 for no cache, or -1 for infinite time)", //
        format = Format.INT, def = "720")
        CACHE_MAX_TIME_STABLE, //
-       @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/)")
-       USER_AGENT, //
+
        @Meta(description = "The directory where to get the default story covers; any relative path uses the applciation config directory as base, $HOME notation is supported, / is always accepted as directory separator",//
        format = Format.DIRECTORY, def = "covers/")
        DEFAULT_COVERS_DIR, //
+       @Meta(description = "The directory where to store the library (can be overriden by the envvironment 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 = "The default library to use (KEY:SERVER:PORT), or empty for the local library",//
        format = Format.STRING, def = "")
        DEFAULT_LIBRARY, //
+
+       @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 = "The port on which we can start the server (must be a valid port, from 1 to 65535)", //
        format = Format.INT, def = "58365")
        SERVER_PORT, //
@@ -52,56 +84,55 @@ public enum Config {
        @Meta(description = "If not empty, only the EXACT listed sources will be available for clients without BL subkeys",//
        array = true, format = Format.STRING, def = "")
        SERVER_WHITELIST, //
-       @Meta(description = "The subkeys that the server will allow, including the modes", //
+       @Meta(description = "The subkeys that the server will allow, including the modes\nA subkey ", //
        array = true, format = Format.STRING, def = "")
        SERVER_ALLOWED_SUBKEYS, //
-       @Meta(description = "The directory where to store the library (can be overriden by the envvironment 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 = "DEBUG options",//
+       group = true)
+       DEBUG, //
        @Meta(description = "Show debug information on errors",//
        format = Format.BOOLEAN, def = "false")
        DEBUG_ERR, //
        @Meta(description = "Show debug trace information",//
        format = Format.BOOLEAN, def = "false")
        DEBUG_TRACE, //
-       @Meta(description = "Image format to use for cover images",//
-       format = Format.FIXED_LIST, list = { "PNG", "JPG", "BMP" }, def = "PNG")
-       IMAGE_FORMAT_COVER, //
-       @Meta(description = "Image format to use for content images",//
-       format = Format.FIXED_LIST, list = { "PNG", "JPG", "BMP" }, def = "jpg")
-       IMAGE_FORMAT_CONTENT, //
-       @Meta(group = true)
-       LATEX_LANG, //
+
+       @Meta(description = "Internal configuration\nThose options are internal to the program and should probably not be changed",//
+       group = true)
+       CONF, //
+       @Meta(description = "LaTeX configuration",//
+       group = true)
+       CONF_LATEX_LANG, //
        @Meta(description = "LaTeX output language (full name) for \"English\"",//
        format = Format.STRING, def = "english")
-       LATEX_LANG_EN, //
+       CONF_LATEX_LANG_EN, //
        @Meta(description = "LaTeX output language (full name) for \"French\"",//
        format = Format.STRING, def = "french")
-       LATEX_LANG_FR, //
+       CONF_LATEX_LANG_FR, //
        @Meta(description = "other 'by' prefixes before author name, used to identify the author",//
        array = true, format = Format.STRING, def = "\"by\",\"par\",\"de\",\"©\",\"(c)\"")
-       BYS, //
+       CONF_BYS, //
        @Meta(description = "List of languages codes used for chapter identification (should not be changed)", //
        array = true, format = Format.STRING, def = "\"EN\",\"FR\"")
-       CHAPTER, //
+       CONF_CHAPTER, //
        @Meta(description = "Chapter identification string in English, used to identify a starting chapter in text mode",//
        format = Format.STRING, def = "Chapter")
-       CHAPTER_EN, //
+       CONF_CHAPTER_EN, //
        @Meta(description = "Chapter identification string in French, used to identify a starting chapter in text mode",//
        format = Format.STRING, def = "Chapitre")
-       CHAPTER_FR, //
-       @Meta(description = "Login for YiffStar to have access to all the stories (should not be necessary anymore, but can still be used)",//
+       CONF_CHAPTER_FR, //
+
+       @Meta(description = "YiffStar/SoFurry credentials\nYou can give your YiffStar credentials here to have access to all the stories, though it should not be necessary anymore (some stories used to beblocked for anonymous viewers)",//
+       group = true)
+       LOGIN_YIFFSTAR, //
+       @Meta(description = "Your YiffStar/SoFurry login",//
        format = Format.STRING)
        LOGIN_YIFFSTAR_USER, //
-       @Meta(description = "Password for YiffStar to have access to all the stories (should not be necessary anymore, but can still be used)",//
+       @Meta(description = "Your YiffStar/SoFurry password",//
        format = Format.PASSWORD)
        LOGIN_YIFFSTAR_PASS, //
-       @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")
-       UPDATE_INTERVAL, //
-       @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 = "")
-       USE_PROXY, //
+
        @Meta(description = "FimFiction APIKEY credentials\nFimFiction can be queried via an API, but requires an API key to do that. One has been created for this program, but if you have another API key you can set it here. You can also set a login and password instead, in that case, a new API key will be generated (and stored) if you still haven't set one.",//
        group = true)
        LOGIN_FIMFICTION_APIKEY, //
index 3b0a8489aae281cd929e4f3de06b5376f73ba677..ffcd8af99d0a482b27e939435fbbd6548f32550d 100644 (file)
@@ -47,8 +47,8 @@ public class LocalLibrary extends BasicLibrary {
         */
        public LocalLibrary(File baseDir) {
                this(baseDir, Instance.getConfig().getString(
-                               Config.NON_IMAGES_DOCUMENT_TYPE), Instance.getConfig()
-                               .getString(Config.IMAGES_DOCUMENT_TYPE), false);
+                               Config.FILE_FORMAT_NON_IMAGES_DOCUMENT_TYPE), Instance.getConfig()
+                               .getString(Config.FILE_FORMAT_IMAGES_DOCUMENT_TYPE), false);
        }
 
        /**
@@ -516,7 +516,7 @@ public class LocalLibrary extends BasicLibrary {
        private File getAuthorCoverFile(String author) {
                File aDir = new File(baseDir, "_AUTHORS");
                String hash = StringUtils.getMd5Hash(author);
-               String ext = Instance.getConfig().getString(Config.IMAGE_FORMAT_COVER);
+               String ext = Instance.getConfig().getString(Config.FILE_FORMAT_IMAGE_FORMAT_COVER);
                return new File(aDir, hash + "." + ext.toLowerCase());
        }
 
@@ -562,7 +562,7 @@ public class LocalLibrary extends BasicLibrary {
                }
 
                String coverExt = "."
-                               + Instance.getConfig().getString(Config.IMAGE_FORMAT_COVER)
+                               + Instance.getConfig().getString(Config.FILE_FORMAT_IMAGE_FORMAT_COVER)
                                                .toLowerCase();
                File coverFile = new File(path + coverExt);
                if (!coverFile.exists()) {
index b56cc339285e4f64c83401b5ba79cfe50bb068fc..e3280d124fcfde473df65bb415805eaefbfab468 100644 (file)
@@ -437,7 +437,7 @@ class Epub extends BasicOutput {
 
                if (story.getMeta() != null && story.getMeta().getCover() != null) {
                        String format = Instance.getConfig()
-                                       .getString(Config.IMAGE_FORMAT_COVER).toLowerCase();
+                                       .getString(Config.FILE_FORMAT_IMAGE_FORMAT_COVER).toLowerCase();
                        builder.append("\n      <item id=\"cover\" href=\"images/cover."
                                        + format + "\" media-type=\"image/png\"/>");
                }
@@ -483,7 +483,7 @@ class Epub extends BasicOutput {
                }
 
                String format = Instance.getConfig()
-                               .getString(Config.IMAGE_FORMAT_COVER).toLowerCase();
+                               .getString(Config.FILE_FORMAT_IMAGE_FORMAT_COVER).toLowerCase();
 
                builder.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
                builder.append("\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">");
index 756eb8d328907e3d02eb19cede3c57dd51082ce4..ca802a50b60770c73d1ceef3388037a2222c1482 100644 (file)
@@ -92,7 +92,7 @@ class Html extends BasicOutput {
                }
 
                String format = Instance.getConfig()
-                               .getString(Config.IMAGE_FORMAT_COVER).toLowerCase();
+                               .getString(Config.FILE_FORMAT_IMAGE_FORMAT_COVER).toLowerCase();
 
                InputStream inStyle = getClass().getResourceAsStream("html.style.css");
                if (inStyle == null) {
index 9227d3e440d9f9371506c160813b9827c029c851..6bfa4dd0ac504c8d74bcfb4a78b54ce5b75d5ae5 100644 (file)
@@ -47,7 +47,7 @@ public class InfoCover {
                                writeMeta(infoWriter, "TYPE", meta.getType());
                                if (meta.getCover() != null) {
                                        String format = Instance.getConfig()
-                                                       .getString(Config.IMAGE_FORMAT_COVER).toLowerCase();
+                                                       .getString(Config.FILE_FORMAT_IMAGE_FORMAT_COVER).toLowerCase();
                                        writeMeta(infoWriter, "COVER", targetName + "." + format);
                                } else {
                                        writeMeta(infoWriter, "COVER", "");
index d677f10f5b9d6355682febea623fbdef58321adf..321556feed92054f0b134d19ad1a8bfcf5401340 100644 (file)
@@ -66,7 +66,7 @@ class LaTeX extends BasicOutput {
                        author = "\\author{" + latexEncode(meta.getAuthor()) + "}";
                        lang = meta.getLang().toLowerCase();
                        if (lang != null && !lang.isEmpty()) {
-                               lang = Instance.getConfig().getStringX(Config.LATEX_LANG, lang);
+                               lang = Instance.getConfig().getStringX(Config.CONF_LATEX_LANG, lang);
                                if (lang == null) {
                                        System.err.println(Instance.getTrans().getString(
                                                        StringId.LATEX_LANG_UNKNOWN, lang));
index 652506762ff6b9cc5aa13f19836d40d04e16bd42..c9c9f0843cdf12f08d3e28c0b0f0d0782efab2ac 100644 (file)
@@ -204,7 +204,7 @@ class BasicSupportHelper {
        public static String fixAuthor(String author) {
                if (author != null) {
                        for (String suffix : new String[] { " ", ":" }) {
-                               for (String byString : Instance.getConfig().getList(Config.BYS)) {
+                               for (String byString : Instance.getConfig().getList(Config.CONF_BYS)) {
                                        byString += suffix;
                                        if (author.toUpperCase().startsWith(byString.toUpperCase())) {
                                                author = author.substring(byString.length()).trim();
index 9795cf661a25c8ce6b3ce63dd827725125dcf485..b9603484c17fb48410417e4df68eaa348252eaec 100644 (file)
@@ -68,9 +68,9 @@ class BasicSupportPara {
                // "Chapter 5: - Fun!" after the ": " was automatically added)
                String chapterName = BasicSupportPara.processPara(name, false)
                                .getContent().trim();
-               for (String lang : Instance.getConfig().getList(Config.CHAPTER)) {
+               for (String lang : Instance.getConfig().getList(Config.CONF_CHAPTER)) {
                        String chapterWord = Instance.getConfig().getStringX(
-                                       Config.CHAPTER, lang);
+                                       Config.CONF_CHAPTER, lang);
                        if (chapterName.startsWith(chapterWord)) {
                                chapterName = chapterName.substring(chapterWord.length())
                                                .trim();
index 7a652a46adb7000997cb08451ba07f2be6de427e..1faac03eba405657f6861f53660f2150357a4387 100644 (file)
@@ -391,9 +391,9 @@ public abstract class BasicSupport_Deprecated extends BasicSupport {
                // redundant "Chapter x: " in front of it, or "-" (as in
                // "Chapter 5: - Fun!" after the ": " was automatically added)
                String chapterName = processPara(name).getContent().trim();
-               for (String lang : Instance.getConfig().getList(Config.CHAPTER)) {
+               for (String lang : Instance.getConfig().getList(Config.CONF_CHAPTER)) {
                        String chapterWord = Instance.getConfig().getStringX(
-                                       Config.CHAPTER, lang);
+                                       Config.CONF_CHAPTER, lang);
                        if (chapterName.startsWith(chapterWord)) {
                                chapterName = chapterName.substring(chapterWord.length())
                                                .trim();
index 10c82fc522c26cf24fe6936972a97852f9956825..33c17219393a8cd20a325030ad48e77162d6d190 100644 (file)
@@ -305,9 +305,9 @@ class Fanfiction extends BasicSupport_Deprecated {
                                        if (pos >= 0) {
                                                boolean chaptered = false;
                                                for (String lang : Instance.getConfig().getList(
-                                                               Config.CHAPTER)) {
+                                                               Config.CONF_CHAPTER)) {
                                                        String chapterWord = Instance.getConfig()
-                                                                       .getStringX(Config.CHAPTER, lang);
+                                                                       .getStringX(Config.CONF_CHAPTER, lang);
                                                        int posChap = line.indexOf(chapterWord + " ");
                                                        if (posChap < pos) {
                                                                chaptered = true;
index 57f021f203e68450c9926e372fb02f4d484fde9c..3d09a55a14d024df221cd0b6db56a959b7416407 100644 (file)
@@ -95,7 +95,7 @@ public class InfoReader {
                File basefile = new File(sourceInfoFile.getFile());
 
                String ext = "."
-                               + Instance.getConfig().getString(Config.IMAGE_FORMAT_COVER)
+                               + Instance.getConfig().getString(Config.FILE_FORMAT_IMAGE_FORMAT_COVER)
                                                .toLowerCase();
 
                // Without removing ext
index 34f180e94c3cb16bc778313ccaeebdc5ceef0472..1e5977a493660bac7b6551ba7f09d506696c8074 100644 (file)
@@ -331,8 +331,8 @@ class Text extends BasicSupport {
         */
        static private String detectChapter(String line, int number) {
                line = line.toUpperCase();
-               for (String lang : Instance.getConfig().getList(Config.CHAPTER)) {
-                       String chapter = Instance.getConfig().getStringX(Config.CHAPTER,
+               for (String lang : Instance.getConfig().getList(Config.CONF_CHAPTER)) {
+                       String chapter = Instance.getConfig().getStringX(Config.CONF_CHAPTER,
                                        lang);
                        if (chapter != null && !chapter.isEmpty()) {
                                chapter = chapter.toUpperCase() + " ";