70bf322ed416821d8b8e29d7baba977831d1931f
[fanfix.git] / src / be / nikiroo / fanfix / bundles / Config.java
1 package be.nikiroo.fanfix.bundles;
2
3 import be.nikiroo.utils.resources.Meta;
4 import be.nikiroo.utils.resources.Meta.Format;
5
6 /**
7 * The configuration options.
8 *
9 * @author niki
10 */
11 @SuppressWarnings("javadoc")
12 public enum Config {
13 @Meta(description = "language (example: en-GB, fr-BE...) or nothing for default system language", format = Format.LOCALE, info = "Force the language (can be overwritten again with the env variable $LANG)")
14 LANG, //
15 @Meta(description = "reader type (CLI = simple output to console, TUI = Text User Interface with menus and windows, GUI = a GUI with locally stored files)", format = Format.FIXED_LIST, list = {
16 "CLI", "GUI", "TUI" }, info = "Select the default reader to use to read stories")
17 READER_TYPE, //
18 @Meta(def = "INFO_TEXT", format = Format.COMBO_LIST, list = { "INFO_TEXT",
19 "EPUB", "HTML", "TEXT" }, info = "One of the known output type", description = "The type of output for the Local Reader for non-images documents")
20 NON_IMAGES_DOCUMENT_TYPE, //
21 @Meta(def = "CBZ", format = Format.COMBO_LIST, list = { "CBZ", "HTML" }, description = "The type of output for the Local Reader for images documents")
22 IMAGES_DOCUMENT_TYPE, //
23 @Meta(description = "absolute path, $HOME variable supported, / is always accepted as dir separator", format = Format.DIRECTORY, info = "The directory where to store temporary files, defaults to directory 'tmp' in the conig directory (usually $HOME/.fanfix)")
24 CACHE_DIR, //
25 @Meta(def = "24", description = "delay in hours, or 0 for no cache, or -1 for infinite time (default)", format = Format.INT, info = "The delay after which a cached resource that is thought to change ~often is considered too old and triggers a refresh")
26 CACHE_MAX_TIME_CHANGING, //
27 @Meta(def = "720", description = "delay in hours, or 0 for no cache, or -1 for infinite time (default)", format = Format.INT, info = "The delay after which a cached resource that is thought to change rarely is considered too old and triggers a refresh")
28 CACHE_MAX_TIME_STABLE, //
29 @Meta(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)", description = "string", info = "The user-agent to use to download files")
30 USER_AGENT, //
31 @Meta(def = "$HOME/.fanfix/covers/", 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")
32 DEFAULT_COVERS_DIR, //
33 @Meta(description = "string", info = "The default library to use (KEY:SERVER:PORT), or empty for the local library")
34 DEFAULT_LIBRARY, //
35 @Meta(def = "58365", description = "The port on which we can start the server", format = Format.INT, info = "A valid port")
36 SERVER_PORT, //
37 @Meta(def = "", description = "The encryption key for the server (NOT including a subkey)", format = Format.PASSWORD, info = "cannot contain the pipe character (|)")
38 SERVER_KEY, //
39 @Meta(def = "TRUE", description = "Allow write access to the clients by default (download story, move story...)", format = Format.BOOLEAN)
40 SERVER_RW, //
41 @Meta(def = "", description = "If not empty, only the EXACT listed sources will be available for clients", info = "list is comma-separated (,) and values are surrounded by double quotes (\"); any double quote in the value must be backslash-escaped (with \\\")")
42 SERVER_WHITELIST, //
43 @Meta(def = "", description = "The subkeys that the server will allow, including the modes", info = "list is comma-separated (,) and values are surrounded by double quotes (\"); any double quote in the value must be backslash-escaped (with \\\")")
44 SERVER_ALLOWED_SUBKEYS, //
45 @Meta(def = "$HOME/Books", description = "absolute path, $HOME variable supported, / is always accepted as dir separator", format = Format.DIRECTORY, info = "The directory where to store the library")
46 LIBRARY_DIR, //
47 @Meta(def = "false", description = "boolean", format = Format.BOOLEAN, info = "Show debug information on errors")
48 DEBUG_ERR, //
49 @Meta(def = "false", description = "boolean", format = Format.BOOLEAN, info = "Show debug trace information")
50 DEBUG_TRACE, //
51 @Meta(def = "PNG", description = "image format", format = Format.COMBO_LIST, list = {
52 "PNG", "JPG", "BMP" }, info = "Image format to use for cover images")
53 IMAGE_FORMAT_COVER, //
54 @Meta(def = "JPG", description = "image format", format = Format.COMBO_LIST, list = {
55 "PNG", "JPG", "BMP" }, info = "Image format to use for content images")
56 IMAGE_FORMAT_CONTENT, //
57 @Meta(group = true)
58 LATEX_LANG, //
59 @Meta(def = "english", description = "LaTeX output language: English", info = "LaTeX full name")
60 LATEX_LANG_EN, //
61 @Meta(def = "french", description = "LaTeX output language: French", info = "LaTeX full name")
62 LATEX_LANG_FR, //
63 @Meta(def = "by,par,de,©,(c)", description = "other 'by' prefixes before author name, used to identify the author", array = true)
64 BYS, //
65 @Meta(def = "EN,FR", description = "List of languages codes used for chapter identification (should not be changed)", array = true, info = "EN,FR")
66 CHAPTER, //
67 @Meta(def = "Chapter", description = "Chapter identification String: English", info = "used to identify a starting chapter in text mode")
68 CHAPTER_EN, //
69 @Meta(def = "Chapitre", description = "Chapter identification String: French", info = "used to identify a starting chapter in text mode")
70 CHAPTER_FR, //
71 @Meta(description = "Login information (username) for YiffStar to have access to all the stories (should not be necessary anymore)")
72 LOGIN_YIFFSTAR_USER, //
73 @Meta(description = "Login information (password) for YiffStar to have access to all the stories (should not be necessary anymore)", format = Format.PASSWORD)
74 LOGIN_YIFFSTAR_PASS, //
75 @Meta(description = "If the last update check was done at least that many days, check for updates at startup (-1 for 'no checks' -- default is 1 day)", format = Format.INT)
76 UPDATE_INTERVAL, //
77 @Meta(def = "", description = "", info = "Format is ((user(:pass)@)proxy:port), with ':' being system proxy and an empty String being no proxy")
78 USE_PROXY, //
79 @Meta(group = true, 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.")
80 LOGIN_FIMFICTION_APIKEY, //
81 @Meta(description = "An API key required to create a token from FimFiction", format = Format.STRING)
82 LOGIN_FIMFICTION_APIKEY_CLIENT_ID, //
83 @Meta(description = "An API key required to create a token from FimFiction", format = Format.PASSWORD)
84 LOGIN_FIMFICTION_APIKEY_CLIENT_SECRET, //
85 @Meta(description = "Do not use the new API, even if we have a token, and force HTML scraping (default is false, use API if token or ID present)", format = Format.BOOLEAN)
86 LOGIN_FIMFICTION_APIKEY_FORCE_HTML, //
87 @Meta(def = "Bearer WnZ5oHlzQoDocv1GcgHfcoqctHkSwL-D", description = "A token is required to use the beta APIv2 from FimFiction (see APIKEY_CLIENT_*)", format = Format.PASSWORD)
88 LOGIN_FIMFICTION_APIKEY_TOKEN, //
89 }