From 416ed13fcf2416c118402fa00a5e46a7f9c44927 Mon Sep 17 00:00:00 2001 From: Niki Roo Date: Tue, 18 Apr 2017 20:34:49 +0200 Subject: [PATCH 01/16] Fix date/language meta data on e-hentai --- changelog.md | 3 ++ src/be/nikiroo/fanfix/supported/EHentai.java | 45 ++++++++++++++++++-- 2 files changed, 45 insertions(+), 3 deletions(-) diff --git a/changelog.md b/changelog.md index 53fa25e..09b457c 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,8 @@ # Fanfix +## Version WIP +- fix some meta data that were missing on e-Hentai + ## Version 1.5.0 - New website supported following a request: e-hentai.org - Library: perf improvement when retrieving the stories (cover not loaded when not needed) diff --git a/src/be/nikiroo/fanfix/supported/EHentai.java b/src/be/nikiroo/fanfix/supported/EHentai.java index eae377c..3636354 100644 --- a/src/be/nikiroo/fanfix/supported/EHentai.java +++ b/src/be/nikiroo/fanfix/supported/EHentai.java @@ -35,15 +35,15 @@ class EHentai extends BasicSupport { meta.setTitle(getTitle(reset(in))); meta.setAuthor(getAuthor(reset(in))); - meta.setDate(""); + meta.setDate(getDate(reset(in))); meta.setTags(getTags(reset(in))); meta.setSource(getSourceName()); meta.setUrl(source.toString()); meta.setPublisher(getSourceName()); meta.setUuid(source.toString()); meta.setLuid(""); - meta.setLang("EN"); - meta.setSubject("Furry"); + meta.setLang(getLang(reset(in))); + meta.setSubject("Hentai"); meta.setType(getType().toString()); meta.setImageDocument(true); meta.setCover(getCover(source, reset(in))); @@ -101,6 +101,45 @@ class EHentai extends BasicSupport { return author; } + private String getLang(InputStream in) { + String lang = null; + + String langLine = getKeyLine(in, "class=\"gdt1\">Language", + "class=\"gdt2\"", ""); + if (langLine != null) { + langLine = StringUtils.unhtml(langLine).trim(); + if (langLine.equalsIgnoreCase("English")) { + lang = "EN"; + } else if (langLine.equalsIgnoreCase("Japanese")) { + lang = "JP"; + } else if (langLine.equalsIgnoreCase("French")) { + lang = "FR"; + } else { + // TODO find the code? + lang = langLine; + } + } + + return lang; + } + + private String getDate(InputStream in) { + String date = null; + + String dateLine = getKeyLine(in, "class=\"gdt1\">Posted", + "class=\"gdt2\"", ""); + if (dateLine != null) { + dateLine = StringUtils.unhtml(dateLine).trim(); + if (dateLine.length() > 10) { + dateLine = dateLine.substring(0, 10).trim(); + } + + date = dateLine; + } + + return date; + } + private List getTags(InputStream in) { List tags = new ArrayList(); List tagsAuthor = getTagsAuthor(in); -- 2.27.0 From 2d2a32227e37cb3be9c2b2259d1673f2dc0dc1cd Mon Sep 17 00:00:00 2001 From: Niki Roo Date: Tue, 18 Apr 2017 21:37:52 +0200 Subject: [PATCH 02/16] When cover not found, check next to .info --- src/be/nikiroo/fanfix/supported/InfoReader.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/be/nikiroo/fanfix/supported/InfoReader.java b/src/be/nikiroo/fanfix/supported/InfoReader.java index ede84e3..571f77b 100644 --- a/src/be/nikiroo/fanfix/supported/InfoReader.java +++ b/src/be/nikiroo/fanfix/supported/InfoReader.java @@ -9,6 +9,8 @@ import java.net.URL; import java.util.ArrayList; import java.util.List; +import be.nikiroo.fanfix.Instance; +import be.nikiroo.fanfix.bundles.Config; import be.nikiroo.fanfix.data.MetaData; import be.nikiroo.utils.MarkableFileInputStream; @@ -56,6 +58,18 @@ public class InfoReader { if (withCover) { meta.setCover(BasicSupport.getImage(null, sourceInfoFile, getInfoTag(in, "COVER"))); + // Second chance: try to check for a cover next to the info file + if (meta.getCover() == null) { + String info = sourceInfoFile.getFile().toString(); + if (info.endsWith(".info")) { + info = info.substring(0, info.length() - ".info".length()); + String ext = "." + + Instance.getConfig().getString( + Config.IMAGE_FORMAT_COVER); + meta.setCover(BasicSupport.getImage(null, sourceInfoFile, + info + ext)); + } + } } try { meta.setWords(Long.parseLong(getInfoTag(in, "WORDCOUNT"))); -- 2.27.0 From 27dc71793c8d76712f01cc6fdef75195bb22483a Mon Sep 17 00:00:00 2001 From: Niki Roo Date: Thu, 20 Apr 2017 20:01:18 +0200 Subject: [PATCH 03/16] Update nikiroo-utils (fix for e-hentai language) --- ...es.jar => nikiroo-utils-1.4.3-sources.jar} | Bin 56403 -> 56460 bytes .../fanfix/supported/BasicSupport.java | 3 ++- 2 files changed, 2 insertions(+), 1 deletion(-) rename libs/{nikiroo-utils-1.4.2-sources.jar => nikiroo-utils-1.4.3-sources.jar} (93%) diff --git a/libs/nikiroo-utils-1.4.2-sources.jar b/libs/nikiroo-utils-1.4.3-sources.jar similarity index 93% rename from libs/nikiroo-utils-1.4.2-sources.jar rename to libs/nikiroo-utils-1.4.3-sources.jar index 2a4f7d1f6a630b4f4bee29d4d135505b783e043b..559a58d045a894b03e5fda14329ad2f530869fd3 100644 GIT binary patch delta 2935 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 diff --git a/src/be/nikiroo/fanfix/supported/BasicSupport.java b/src/be/nikiroo/fanfix/supported/BasicSupport.java index c0419aa..471147e 100644 --- a/src/be/nikiroo/fanfix/supported/BasicSupport.java +++ b/src/be/nikiroo/fanfix/supported/BasicSupport.java @@ -1496,7 +1496,8 @@ public abstract class BasicSupport { * @param in * the input * @param key - * the key to match + * the key to match (also supports "^" at start to say + * "only if it starts with" the key) * @param subKey * the sub key or NULL if none * @param endKey -- 2.27.0 From f60df2f146dbb998da84728f76903ecae9ed5f0a Mon Sep 17 00:00:00 2001 From: Niki Roo Date: Tue, 25 Apr 2017 21:19:28 +0200 Subject: [PATCH 04/16] Fix: "Chapter 5: - Fun!" -> "Chapter 5: Fun!" --- src/be/nikiroo/fanfix/supported/BasicSupport.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/be/nikiroo/fanfix/supported/BasicSupport.java b/src/be/nikiroo/fanfix/supported/BasicSupport.java index 471147e..0de0c4a 100644 --- a/src/be/nikiroo/fanfix/supported/BasicSupport.java +++ b/src/be/nikiroo/fanfix/supported/BasicSupport.java @@ -593,7 +593,8 @@ public abstract class BasicSupport { protected Chapter makeChapter(URL source, int number, String name, String content, Progress pg) throws IOException { // Chapter name: process it correctly, then remove the possible - // redundant "Chapter x: " in front of it + // 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().getString(Config.CHAPTER) .split(",")) { @@ -611,7 +612,7 @@ public abstract class BasicSupport { Integer.toString(number).length()).trim(); } - if (chapterName.startsWith(":")) { + while (chapterName.startsWith(":") || chapterName.startsWith("-")) { chapterName = chapterName.substring(1).trim(); } // -- 2.27.0 From 83f66cbbd12246a5e2f1aeee1afe36503b901814 Mon Sep 17 00:00:00 2001 From: Niki Roo Date: Mon, 5 Jun 2017 18:58:59 +0200 Subject: [PATCH 05/16] Version 1.5.1: FimFiction 4, small fix on eHentai - Today (10:30 GMT), FimFiction migrated to version 4 and was not compatible any more with Fanfix - some metadata fixed for eHentai --- VERSION | 2 +- changelog.md | 3 +- .../nikiroo/fanfix/supported/Fimfiction.java | 85 ++++++++++--------- 3 files changed, 50 insertions(+), 40 deletions(-) diff --git a/VERSION b/VERSION index bc80560..26ca594 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.5.0 +1.5.1 diff --git a/changelog.md b/changelog.md index 09b457c..54c4bbc 100644 --- a/changelog.md +++ b/changelog.md @@ -1,6 +1,7 @@ # Fanfix -## Version WIP +## Version 1.5.1 +- Update to FimFiction 4 - fix some meta data that were missing on e-Hentai ## Version 1.5.0 diff --git a/src/be/nikiroo/fanfix/supported/Fimfiction.java b/src/be/nikiroo/fanfix/supported/Fimfiction.java index 6293c11..1faf615 100644 --- a/src/be/nikiroo/fanfix/supported/Fimfiction.java +++ b/src/be/nikiroo/fanfix/supported/Fimfiction.java @@ -156,12 +156,12 @@ class Fimfiction extends BasicSupport { @Override protected String getDesc(URL source, InputStream in) { // the og: meta version is the SHORT resume, this is the LONG resume - return getLine(in, "class=\"more_button hidden\"", -1); + return getLine(in, "class=\"description-text bbcode\"", 1); } private BufferedImage getCover(InputStream in) { // Note: the 'og:image' is the SMALL cover, not the full version - String cover = getLine(in, "
", 1); + String cover = getLine(in, "class=\"story_container__story_image\"", 1); if (cover != null) { int pos = cover.indexOf('"'); if (pos >= 0) { @@ -183,49 +183,58 @@ class Fimfiction extends BasicSupport { @SuppressWarnings("resource") Scanner scan = new Scanner(in, "UTF-8"); scan.useDelimiter("\\n"); + boolean started = false; while (scan.hasNext()) { - String line = scan.next(); - if (line.contains("class=\"chapter_link\"") - || line.contains("class='chapter_link'")) { - // Chapter name - String name = line; - int pos = name.indexOf('>'); - if (pos >= 0) { - name = name.substring(pos + 1); - pos = name.indexOf('<'); + String line = scan.next().trim(); + + if (!started) { + started = line.equals(""); + } else { + if (line.equals("")) { + break; + } + + if (line.startsWith("= 0) { - line = line.substring(0, pos); + line = line.substring(pos); // we take the /, not +1 + pos = line.indexOf('"'); + if (pos >= 0) { + line = line.substring(0, pos); + } } - } - try { - final String key = name; - final URL value = new URL("http://www.fimfiction.net" - + line); - urls.add(new Entry() { - public URL setValue(URL value) { - return null; - } + try { + final String key = name; + final URL value = new URL("http://www.fimfiction.net" + + line); + urls.add(new Entry() { + public URL setValue(URL value) { + return null; + } - public String getKey() { - return key; - } + public String getKey() { + return key; + } - public URL getValue() { - return value; - } - }); - } catch (MalformedURLException e) { - Instance.syserr(e); + public URL getValue() { + return value; + } + }); + } catch (MalformedURLException e) { + Instance.syserr(e); + } } } } @@ -236,7 +245,7 @@ class Fimfiction extends BasicSupport { @Override protected String getChapterContent(URL source, InputStream in, int number, Progress pg) { - return getLine(in, "
", 1); + return getLine(in, "
", 1); } @Override -- 2.27.0 From c3c7900359a459fabfe59e8af212921036f5f5ed Mon Sep 17 00:00:00 2001 From: Niki Roo Date: Mon, 5 Jun 2017 19:21:25 +0200 Subject: [PATCH 06/16] Version 1.5.2: fix Fimfiction 4 metadata --- VERSION | 2 +- changelog.md | 5 +++- .../nikiroo/fanfix/supported/Fimfiction.java | 26 +++++++++++-------- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/VERSION b/VERSION index 26ca594..4cda8f1 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.5.1 +1.5.2 diff --git a/changelog.md b/changelog.md index 54c4bbc..8c7e658 100644 --- a/changelog.md +++ b/changelog.md @@ -1,8 +1,11 @@ # Fanfix +## Version 1.5.2 +- Fix tags metadata on FimFiction 4 + ## Version 1.5.1 - Update to FimFiction 4 -- fix some meta data that were missing on e-Hentai +- Fix some meta data that were missing on e-Hentai ## Version 1.5.0 - New website supported following a request: e-hentai.org diff --git a/src/be/nikiroo/fanfix/supported/Fimfiction.java b/src/be/nikiroo/fanfix/supported/Fimfiction.java index 1faf615..45455b6 100644 --- a/src/be/nikiroo/fanfix/supported/Fimfiction.java +++ b/src/be/nikiroo/fanfix/supported/Fimfiction.java @@ -70,21 +70,25 @@ class Fimfiction extends BasicSupport { @SuppressWarnings("resource") Scanner scan = new Scanner(in, "UTF-8"); scan.useDelimiter("\\n"); + boolean started = false; while (scan.hasNext()) { String line = scan.next(); - if (line.contains("story_category") && !line.contains("title=")) { - int pos = line.indexOf('>'); - if (pos >= 0) { - line = line.substring(pos + 1); - pos = line.indexOf('<'); - if (pos >= 0) { - line = line.substring(0, pos); - } + + if (!started) { + started = line.contains("\"story_container\""); + } + + if (started && line.contains("class=\"tag-")) { + if (line.contains("index.php")) { + break; // end of *this story* tags } - line = line.trim(); - if (!tags.contains(line)) { - tags.add(line); + String tab[] = line.split("
  • "); + for (String subline : tab) { + subline = StringUtils.unhtml(subline).trim(); + if (!subline.isEmpty() && !tags.contains(subline)) { + tags.add(subline); + } } } } -- 2.27.0 From e1168b3cca916ab8adccfac1a3bce0f98e25bb07 Mon Sep 17 00:00:00 2001 From: Niki Roo Date: Sun, 18 Jun 2017 20:49:13 +0200 Subject: [PATCH 07/16] FimFiction: Fix tags and chapter handling --- VERSION | 2 +- changelog.md | 3 +++ src/be/nikiroo/fanfix/Library.java | 4 ++-- .../nikiroo/fanfix/supported/Fimfiction.java | 23 ++++++++++++++----- 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/VERSION b/VERSION index 4cda8f1..8af85be 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.5.2 +1.5.3 diff --git a/changelog.md b/changelog.md index 8c7e658..f399def 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,8 @@ # Fanfix +## Version 1.5.3 +- FimFiction: Fix tags and chapter handling for some stories + ## Version 1.5.2 - Fix tags metadata on FimFiction 4 diff --git a/src/be/nikiroo/fanfix/Library.java b/src/be/nikiroo/fanfix/Library.java index f1f7121..80a9e8c 100644 --- a/src/be/nikiroo/fanfix/Library.java +++ b/src/be/nikiroo/fanfix/Library.java @@ -430,8 +430,8 @@ public class Library { * * @param luid * the {@link Story} LUID - * @param newSourcethe - * new source + * @param newType + * the new type * * @return TRUE if the {@link Story} was found */ diff --git a/src/be/nikiroo/fanfix/supported/Fimfiction.java b/src/be/nikiroo/fanfix/supported/Fimfiction.java index 45455b6..08d1712 100644 --- a/src/be/nikiroo/fanfix/supported/Fimfiction.java +++ b/src/be/nikiroo/fanfix/supported/Fimfiction.java @@ -83,13 +83,23 @@ class Fimfiction extends BasicSupport { break; // end of *this story* tags } - String tab[] = line.split("
  • "); - for (String subline : tab) { - subline = StringUtils.unhtml(subline).trim(); - if (!subline.isEmpty() && !tags.contains(subline)) { - tags.add(subline); + String keyword = "title=\""; + Scanner tagScanner = new Scanner(line); + tagScanner.useDelimiter(keyword); + if (tagScanner.hasNext()) { + tagScanner.next();// Ignore first one + } + while (tagScanner.hasNext()) { + String tag = tagScanner.next(); + if (tag.contains("\"")) { + tag = tag.split("\"")[0]; + tag = StringUtils.unhtml(tag).trim(); + if (!tag.isEmpty() && !tags.contains(tag)) { + tags.add(tag); + } } } + tagScanner.close(); } } @@ -198,7 +208,8 @@ class Fimfiction extends BasicSupport { break; } - if (line.startsWith("'); -- 2.27.0 From 0efd25e3aa839ba82da1054a470c27830b9ed94a Mon Sep 17 00:00:00 2001 From: Niki Roo Date: Tue, 20 Jun 2017 13:57:27 +0200 Subject: [PATCH 08/16] Some jDoc fixes --- src/be/nikiroo/fanfix/Cache.java | 24 +++++++-------- src/be/nikiroo/fanfix/Main.java | 2 +- src/be/nikiroo/fanfix/VersionCheck.java | 6 ++++ .../nikiroo/fanfix/bundles/ConfigBundle.java | 3 ++ .../nikiroo/fanfix/bundles/package-info.java | 2 +- src/be/nikiroo/fanfix/data/Chapter.java | 2 +- src/be/nikiroo/fanfix/data/MetaData.java | 2 +- src/be/nikiroo/fanfix/data/Paragraph.java | 7 ++--- src/be/nikiroo/fanfix/output/BasicOutput.java | 20 ++++++++----- .../fanfix/supported/BasicSupport.java | 30 +++++++++++++++---- src/be/nikiroo/fanfix/supported/YiffStar.java | 1 + 11 files changed, 62 insertions(+), 37 deletions(-) diff --git a/src/be/nikiroo/fanfix/Cache.java b/src/be/nikiroo/fanfix/Cache.java index 7f603c1..632c844 100644 --- a/src/be/nikiroo/fanfix/Cache.java +++ b/src/be/nikiroo/fanfix/Cache.java @@ -14,7 +14,6 @@ import java.net.CookiePolicy; import java.net.CookieStore; import java.net.HttpCookie; import java.net.HttpURLConnection; -import java.net.URISyntaxException; import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; @@ -303,17 +302,13 @@ public class Cache { } /** - * Open a resource (will load it from the cache if possible, or save it into - * the cache after downloading if not) as an Image, then save it where - * requested. - *

    - * This version will not always work properly if the original file was not - * downloaded before. + * Save the given resource as an image on disk using the default image + * format for content. * * @param url - * the resource to open - * - * @return the opened resource image + * the resource + * @param target + * the target file * * @throws IOException * in case of I/O error @@ -357,7 +352,7 @@ public class Cache { * * @param uniqueID * the unique ID - * + * * @return the content or NULL */ public InputStream getFromCache(String uniqueID) { @@ -428,7 +423,6 @@ public class Cache { * * @throws IOException * in case of I/O error - * @throws URISyntaxException */ private void save(URL url, BasicSupport support, URL originalUrl) throws IOException { @@ -518,6 +512,7 @@ public class Cache { * * @param url * the url + * * @return the cached version if present, NULL if not */ private File getCached(URL url) { @@ -535,8 +530,9 @@ public class Cache { * Get the cache resource from the cache if it is present for this unique * ID. * - * @param url - * the url + * @param uniqueID + * the id + * * @return the cached version if present, NULL if not */ private File getCached(String uniqueID) { diff --git a/src/be/nikiroo/fanfix/Main.java b/src/be/nikiroo/fanfix/Main.java index 85d7492..a282e7c 100644 --- a/src/be/nikiroo/fanfix/Main.java +++ b/src/be/nikiroo/fanfix/Main.java @@ -323,7 +323,7 @@ public class Main { * List the stories of the given type from the {@link Library} (unless NULL * is passed, in which case all stories will be listed). * - * @param typeString + * @param type * the type to list the known stories of, or NULL to list all * stories * diff --git a/src/be/nikiroo/fanfix/VersionCheck.java b/src/be/nikiroo/fanfix/VersionCheck.java index 3f63bf5..be7fb91 100644 --- a/src/be/nikiroo/fanfix/VersionCheck.java +++ b/src/be/nikiroo/fanfix/VersionCheck.java @@ -12,6 +12,12 @@ import java.util.Map; import be.nikiroo.utils.Version; +/** + * Version checker: can check the current version of the program against a + * remote changelog, and list the missed updates and their description. + * + * @author niki + */ public class VersionCheck { private static final String url = "https://github.com/nikiroo/fanfix/raw/master/changelog.md"; diff --git a/src/be/nikiroo/fanfix/bundles/ConfigBundle.java b/src/be/nikiroo/fanfix/bundles/ConfigBundle.java index 9bf9dc6..7d38e36 100644 --- a/src/be/nikiroo/fanfix/bundles/ConfigBundle.java +++ b/src/be/nikiroo/fanfix/bundles/ConfigBundle.java @@ -11,6 +11,9 @@ import be.nikiroo.utils.resources.Bundle; * @author niki */ public class ConfigBundle extends Bundle { + /** + * Create a new {@link ConfigBundle}. + */ public ConfigBundle() { super(Config.class, Target.config); } diff --git a/src/be/nikiroo/fanfix/bundles/package-info.java b/src/be/nikiroo/fanfix/bundles/package-info.java index 50db011..80cdd15 100644 --- a/src/be/nikiroo/fanfix/bundles/package-info.java +++ b/src/be/nikiroo/fanfix/bundles/package-info.java @@ -1,6 +1,6 @@ /** * This package encloses the different - * {@link be.nikiroo.utils.resources.bundles.Bundle} and their associated + * {@link be.nikiroo.utils.resources.Bundle} and their associated * {@link java.lang.Enum}s used by the application. * * @author niki diff --git a/src/be/nikiroo/fanfix/data/Chapter.java b/src/be/nikiroo/fanfix/data/Chapter.java index 839d67b..7d0a51b 100644 --- a/src/be/nikiroo/fanfix/data/Chapter.java +++ b/src/be/nikiroo/fanfix/data/Chapter.java @@ -79,7 +79,7 @@ public class Chapter implements Iterable { /** * The included paragraphs. * - * @param paragraphes + * @param paragraphs * the paragraphs to set */ public void setParagraphs(List paragraphs) { diff --git a/src/be/nikiroo/fanfix/data/MetaData.java b/src/be/nikiroo/fanfix/data/MetaData.java index 189277d..872baff 100644 --- a/src/be/nikiroo/fanfix/data/MetaData.java +++ b/src/be/nikiroo/fanfix/data/MetaData.java @@ -235,7 +235,7 @@ public class MetaData implements Cloneable, Comparable { /** * A unique value representing the story in the local library. * - * @param uuid + * @param luid * the luid to set */ public void setLuid(String luid) { diff --git a/src/be/nikiroo/fanfix/data/Paragraph.java b/src/be/nikiroo/fanfix/data/Paragraph.java index e409c28..e4c94d4 100644 --- a/src/be/nikiroo/fanfix/data/Paragraph.java +++ b/src/be/nikiroo/fanfix/data/Paragraph.java @@ -33,11 +33,8 @@ public class Paragraph { /** * Create a new {@link Paragraph} with the given image. * - * @param support - * the support that will be used to fetch the image via - * {@link Paragraph#getContentImage()}. - * @param content - * the content image of this paragraph + * @param imageUrl + * the image as an URL */ public Paragraph(URL imageUrl) { this(ParagraphType.IMAGE, imageUrl.toString(), 0); diff --git a/src/be/nikiroo/fanfix/output/BasicOutput.java b/src/be/nikiroo/fanfix/output/BasicOutput.java index 1ac6101..909c8fe 100644 --- a/src/be/nikiroo/fanfix/output/BasicOutput.java +++ b/src/be/nikiroo/fanfix/output/BasicOutput.java @@ -94,7 +94,8 @@ public abstract class BasicOutput { } /** - * Call {@link OutputType#valueOf(String.toUpperCase())}. + * Call {@link OutputType#valueOf(String)} after conversion to upper + * case. * * @param typeName * the possible type name @@ -107,8 +108,9 @@ public abstract class BasicOutput { } /** - * Call {@link OutputType#valueOf(String.toUpperCase())} but return NULL - * for NULL and empty instead of raising an exception. + * Call {@link OutputType#valueOf(String)} after conversion to upper + * case but return NULL for NULL and empty instead of raising an + * exception. * * @param typeName * the possible type name @@ -124,8 +126,9 @@ public abstract class BasicOutput { } /** - * Call {@link OutputType#valueOf(String.toUpperCase())} but return NULL - * in case of error instead of raising an exception. + * Call {@link OutputType#valueOf(String)} after conversion to upper + * case but return NULL in case of error instead of raising an + * exception. * * @param typeName * the possible type name @@ -238,9 +241,10 @@ public abstract class BasicOutput { * * @param type * the new type - * @param infoCover - * TRUE to enable the creation of a .info file and a cover if - * possible + * @param writeInfo + * TRUE to enable the creation of a .info file + * @param writeCover + * TRUE to enable the creation of a cover if possible * * @return this */ diff --git a/src/be/nikiroo/fanfix/supported/BasicSupport.java b/src/be/nikiroo/fanfix/supported/BasicSupport.java index 0de0c4a..fbdb47a 100644 --- a/src/be/nikiroo/fanfix/supported/BasicSupport.java +++ b/src/be/nikiroo/fanfix/supported/BasicSupport.java @@ -106,7 +106,8 @@ public abstract class BasicSupport { } /** - * Call {@link SupportType#valueOf(String.toUpperCase())}. + * Call {@link SupportType#valueOf(String)} after conversion to upper + * case. * * @param typeName * the possible type name @@ -119,8 +120,8 @@ public abstract class BasicSupport { } /** - * Call {@link SupportType#valueOf(String.toUpperCase())} but return - * NULL for NULL instead of raising exception. + * Call {@link SupportType#valueOf(String)} after conversion to upper + * case but return NULL for NULL instead of raising exception. * * @param typeName * the possible type name @@ -136,8 +137,9 @@ public abstract class BasicSupport { } /** - * Call {@link SupportType#valueOf(String.toUpperCase())} but return - * NULL in case of error instead of raising an exception. + * Call {@link SupportType#valueOf(String)} after conversion to upper + * case but return NULL in case of error instead of raising an + * exception. * * @param typeName * the possible type name @@ -192,6 +194,19 @@ public abstract class BasicSupport { */ protected abstract boolean isHtml(); + /** + * Return the {@link MetaData} of this story. + * + * @param source + * the source of the story + * @param in + * the input (the main resource) + * + * @return the associated {@link MetaData} + * + * @throws IOException + * in case of I/O error + */ protected abstract MetaData getMeta(URL source, InputStream in) throws IOException; @@ -313,9 +328,10 @@ public abstract class BasicSupport { * * @param url * the story resource - * * @param close * close "this" and "in" when done + * @param getDesc + * retrieve the description of the story, or not * @param pg * the optional progress reporter * @@ -576,6 +592,8 @@ public abstract class BasicSupport { * Create a {@link Chapter} object from the given information, formatting * the content as it should be. * + * @param source + * the source of the story * @param number * the chapter number * @param name diff --git a/src/be/nikiroo/fanfix/supported/YiffStar.java b/src/be/nikiroo/fanfix/supported/YiffStar.java index a2126db..9813df8 100644 --- a/src/be/nikiroo/fanfix/supported/YiffStar.java +++ b/src/be/nikiroo/fanfix/supported/YiffStar.java @@ -265,6 +265,7 @@ class YiffStar extends BasicSupport { * @return the {@link URL} * * @throws MalformedURLException + * in case of data error */ private URL guest(String link) throws MalformedURLException { if (link.contains("?")) { -- 2.27.0 From ce788468f22e7666d97acedb81a15004aaf0bc01 Mon Sep 17 00:00:00 2001 From: Niki Roo Date: Thu, 22 Jun 2017 21:05:12 +0200 Subject: [PATCH 09/16] Update to nnikiroo-utils-1.5.0 --- libs/nikiroo-utils-1.4.3-sources.jar | Bin 56460 -> 0 bytes libs/nikiroo-utils-1.5.0-sources.jar | Bin 0 -> 64500 bytes src/be/nikiroo/fanfix/bundles/Config.java | 47 ++++---- .../nikiroo/fanfix/bundles/ConfigBundle.java | 2 +- src/be/nikiroo/fanfix/bundles/StringId.java | 87 +++++++-------- src/be/nikiroo/fanfix/bundles/Target.java | 2 + src/be/nikiroo/fanfix/bundles/UiConfig.java | 14 ++- .../fanfix/bundles/UiConfigBundle.java | 2 +- .../fanfix/bundles/UiConfigBundleDesc.java | 39 +++++++ .../nikiroo/fanfix/bundles/config.properties | 83 +++++++------- .../fanfix/bundles/resources.properties | 103 +++++++++--------- src/be/nikiroo/fanfix/bundles/ui.properties | 14 ++- .../fanfix/bundles/ui_description.properties | 29 +++++ 13 files changed, 252 insertions(+), 170 deletions(-) delete mode 100644 libs/nikiroo-utils-1.4.3-sources.jar create mode 100644 libs/nikiroo-utils-1.5.0-sources.jar create mode 100644 src/be/nikiroo/fanfix/bundles/UiConfigBundleDesc.java create mode 100644 src/be/nikiroo/fanfix/bundles/ui_description.properties diff --git a/libs/nikiroo-utils-1.4.3-sources.jar b/libs/nikiroo-utils-1.4.3-sources.jar deleted file mode 100644 index 559a58d045a894b03e5fda14329ad2f530869fd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56460 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 Z@Y|M;wi*d3I5BSEuNN>d(>{Wq{s+ZklaT-b diff --git a/libs/nikiroo-utils-1.5.0-sources.jar b/libs/nikiroo-utils-1.5.0-sources.jar new file mode 100644 index 0000000000000000000000000000000000000000..13b8f989560c629d6a3219726454ab1a2e746f1d GIT binary patch literal 64500 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 ZZR=200{q2e$0z}R1OUIs*Zs$D{|DlW1fBo@ literal 0 HcmV?d00001 diff --git a/src/be/nikiroo/fanfix/bundles/Config.java b/src/be/nikiroo/fanfix/bundles/Config.java index 6a728c4..a38b9e2 100644 --- a/src/be/nikiroo/fanfix/bundles/Config.java +++ b/src/be/nikiroo/fanfix/bundles/Config.java @@ -1,53 +1,58 @@ package be.nikiroo.fanfix.bundles; import be.nikiroo.utils.resources.Meta; +import be.nikiroo.utils.resources.Meta.Format; /** * The configuration options. * * @author niki */ +@SuppressWarnings("javadoc") public enum Config { - @Meta(what = "language (example: en-GB, fr-BE...) or nothing for default system language", where = "", format = "Locale|''", info = "Force the language (can be overwritten again with the env variable $LANG)") + @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)") LANG, // - @Meta(what = "reader type (CLI = simple output to console, LOCAL = use local system file handler)", where = "", format = "'CLI'|'LOCAL'", info = "Select the default reader to use to read stories") + @Meta(description = "reader type (CLI = simple output to console, LOCAL = use local system file handler)", format = Format.FIXED_LIST, list = { + "CLI", "LOCAL" }, info = "Select the default reader to use to read stories") READER_TYPE, // - @Meta(what = "absolute path, $HOME variable supported, / is always accepted as dir separator", where = "", format = "Directory", info = "The directory where to store temporary files, defaults to directory 'tmp' in the conig directory (usually $HOME/.fanfix)") + @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)") CACHE_DIR, // - @Meta(what = "delay in hours, or 0 for no cache, or -1 for infinite time (default)", where = "", format = "int", info = "The delay after which a cached resource that is thought to change ~often is considered too old and triggers a refresh") + @Meta(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") CACHE_MAX_TIME_CHANGING, // - @Meta(what = "delay in hours, or 0 for no cache, or -1 for infinite time (default)", where = "", format = "int", info = "The delay after which a cached resource that is thought to change rarely is considered too old and triggers a refresh") + @Meta(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") CACHE_MAX_TIME_STABLE, // - @Meta(what = "string", where = "", format = "String", info = "The user-agent to use to download files") + @Meta(description = "string", info = "The user-agent to use to download files") USER_AGENT, // - @Meta(what = "absolute path, $HOME variable supported, / is always accepted as dir separator", where = "", format = "Directory", info = "The directory where to get the default story covers") + @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(what = "absolute path, $HOME variable supported, / is always accepted as dir separator", where = "", format = "Directory", info = "The directory where to store the 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(what = "boolean", where = "", format = "'true'|'false'", info = "Show debug information on errors") + @Meta(description = "boolean", format = Format.BOOLEAN, info = "Show debug information on errors") DEBUG_ERR, // - @Meta(what = "image format", where = "", format = "'PNG'|JPG'|'BMP'", info = "Image format to use for cover images") + @Meta(description = "image format", format = Format.COMBO_LIST, list = { + "PNG", "JPG", "BMP" }, info = "Image format to use for cover images") IMAGE_FORMAT_COVER, // - @Meta(what = "image format", where = "", format = "'PNG'|JPG'|'BMP'", info = "Image format to use for content images") + @Meta(description = "image format", format = Format.COMBO_LIST, list = { + "PNG", "JPG", "BMP" }, info = "Image format to use for content images") IMAGE_FORMAT_CONTENT, // - // This key is only present to allow access to suffixes, so no Meta + @Meta(group = true) LATEX_LANG, // - @Meta(what = "LaTeX output language", where = "LaTeX", format = "String", info = "LaTeX full name for English") + @Meta(description = "LaTeX output language: English", info = "LaTeX full name") LATEX_LANG_EN, // - @Meta(what = "LaTeX output language", where = "LaTeX", format = "String", info = "LaTeX full name for French") + @Meta(description = "LaTeX output language: French", info = "LaTeX full name") LATEX_LANG_FR, // - @Meta(what = "other 'by' prefixes before author name", where = "", format = "comma-separated list|String", info = "used to identify the author") + @Meta(description = "other 'by' prefixes before author name, used to identify the author", array = true) BYS, // - @Meta(what = "Chapter identification languages", where = "", format = "comma-separated list|String", info = "used to identify a starting chapter in text mode") + @Meta(description = "List of languages codes used for chapter identification (should not be changed)", array = true, info = "EN,FR") CHAPTER, // - @Meta(what = "Chapter identification string", where = "String", format = "", info = "used to identify a starting chapter in text mode") + @Meta(description = "Chapter identification String: English", info = "used to identify a starting chapter in text mode") CHAPTER_EN, // - @Meta(what = "Chapter identification string", where = "String", format = "", info = "used to identify a starting chapter in text mode") + @Meta(description = "Chapter identification String: French", info = "used to identify a starting chapter in text mode") CHAPTER_FR, // - @Meta(what = "Login information", where = "", format = "String", info = "used to login on YiffStar to have access to all the stories (should not be necessary anymore)") + @Meta(description = "Login information (username) for YiffStar to have access to all the stories (should not be necessary anymore)") LOGIN_YIFFSTAR_USER, // - @Meta(what = "Login information", where = "", format = "Password", info = "used to login on YiffStar to have access to all the stories (should not be necessary anymore)") + @Meta(description = "Login information (password) for YiffStar to have access to all the stories (should not be necessary anymore)", format = Format.PASSWORD) LOGIN_YIFFSTAR_PASS, // - @Meta(what = "Minimum time between version update checks in days, or -1 for 'no checks' -- default is 1 day", where = "VersionCheck", format = "int", info = "If the last update check was done at least that many days, check for updates at startup") + @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) UPDATE_INTERVAL, } diff --git a/src/be/nikiroo/fanfix/bundles/ConfigBundle.java b/src/be/nikiroo/fanfix/bundles/ConfigBundle.java index 7d38e36..cfe064e 100644 --- a/src/be/nikiroo/fanfix/bundles/ConfigBundle.java +++ b/src/be/nikiroo/fanfix/bundles/ConfigBundle.java @@ -15,7 +15,7 @@ public class ConfigBundle extends Bundle { * Create a new {@link ConfigBundle}. */ public ConfigBundle() { - super(Config.class, Target.config); + super(Config.class, Target.config, null); } /** diff --git a/src/be/nikiroo/fanfix/bundles/StringId.java b/src/be/nikiroo/fanfix/bundles/StringId.java index 78b271d..c49627f 100644 --- a/src/be/nikiroo/fanfix/bundles/StringId.java +++ b/src/be/nikiroo/fanfix/bundles/StringId.java @@ -15,6 +15,7 @@ import be.nikiroo.utils.resources.Meta; * * @author niki */ +@SuppressWarnings("javadoc") public enum StringId { /** * A special key used for technical reasons only, without annotations so it @@ -30,91 +31,91 @@ public enum StringId { * Use it when you need a real translation but still don't have a key. */ DUMMY, // - @Meta(what = "help message", where = "cli", format = "%s = supported input, %s = supported output", info = "help message for the syntax") + @Meta(info = "%s = supported input, %s = supported output", description = "help message for the syntax") HELP_SYNTAX, // - @Meta(what = "error message", where = "cli", format = "", info = "syntax error message") + @Meta(description = "syntax error message") ERR_SYNTAX, // - @Meta(what = "error message", where = "cli", format = "%s = support name, %s = support desc", info = "an input or output support type description") + @Meta(info = "%s = support name, %s = support desc", description = "an input or output support type description") ERR_SYNTAX_TYPE, // - @Meta(what = "error message", where = "cli", format = "%s = input string", info = "Error when retrieving data") + @Meta(info = "%s = input string", description = "Error when retrieving data") ERR_LOADING, // - @Meta(what = "error message", where = "cli", format = "%s = save target", info = "Error when saving to given target") + @Meta(info = "%s = save target", description = "Error when saving to given target") ERR_SAVING, // - @Meta(what = "error message", where = "cli", format = "%s = bad output format", info = "Error when unknown output format") + @Meta(info = "%s = bad output format", description = "Error when unknown output format") ERR_BAD_OUTPUT_TYPE, // - @Meta(what = "error message", where = "cli", format = "%s = input string", info = "Error when converting input to URL/File") + @Meta(info = "%s = input string", description = "Error when converting input to URL/File") ERR_BAD_URL, // - @Meta(what = "error message", where = "cli", format = "%s = input url", info = "URL/File not supported") + @Meta(info = "%s = input url", description = "URL/File not supported") ERR_NOT_SUPPORTED, // - @Meta(what = "error message", where = "BasicSupport", format = "%s = cover URL", info = "Failed to download cover : %s") + @Meta(info = "%s = cover URL", description = "Failed to download cover : %s") ERR_BS_NO_COVER, // - @Meta(what = "char", where = "LaTeX/BasicSupport", format = "single char", info = "Canonical OPEN SINGLE QUOTE char (for instance: `)") + @Meta(info = "single char", description = "Canonical OPEN SINGLE QUOTE char (for instance: `)") OPEN_SINGLE_QUOTE, // - @Meta(what = "char", where = "LaTeX/BasicSupport", format = "single char", info = "Canonical CLOSE SINGLE QUOTE char (for instance: ‘)") + @Meta(info = "single char", description = "Canonical CLOSE SINGLE QUOTE char (for instance: ‘)") CLOSE_SINGLE_QUOTE, // - @Meta(what = "char", where = "LaTeX/BasicSupport", format = "single char", info = "Canonical OPEN DOUBLE QUOTE char (for instance: “)") + @Meta(info = "single char", description = "Canonical OPEN DOUBLE QUOTE char (for instance: “)") OPEN_DOUBLE_QUOTE, // - @Meta(what = "char", where = "LaTeX/BasicSupport", format = "single char", info = "Canonical CLOSE DOUBLE QUOTE char (for instance: ”)") + @Meta(info = "single char", description = "Canonical CLOSE DOUBLE QUOTE char (for instance: ”)") CLOSE_DOUBLE_QUOTE, // - @Meta(what = "chapter name", where = "BasicSupport", format = "", info = "Name of the description fake chapter") + @Meta(description = "Name of the description fake chapter") DESCRIPTION, // - @Meta(what = "chapter name", where = "", format = "%d = number, %s = name", info = "Name of a chapter with a name") + @Meta(info = "%d = number, %s = name", description = "Name of a chapter with a name") CHAPTER_NAMED, // - @Meta(what = "chapter name", where = "", format = "%d = number, %s = name", info = "Name of a chapter without name") + @Meta(info = "%d = number, %s = name", description = "Name of a chapter without name") CHAPTER_UNNAMED, // - @Meta(what = "input format description", where = "SupportType", format = "%s = type", info = "Default description when the type is not known by i18n") + @Meta(info = "%s = type", description = "Default description when the type is not known by i18n") INPUT_DESC, // - @Meta(what = "input format description", where = "SupportType", format = "", info = "Description of this input type") + @Meta(description = "Description of this input type") INPUT_DESC_EPUB, // - @Meta(what = "input format description", where = "SupportType", format = "", info = "Description of this input type") + @Meta(description = "Description of this input type") INPUT_DESC_TEXT, // - @Meta(what = "input format description", where = "SupportType", format = "", info = "Description of this input type") + @Meta(description = "Description of this input type") INPUT_DESC_INFO_TEXT, // - @Meta(what = "input format description", where = "SupportType", format = "", info = "Description of this input type") + @Meta(description = "Description of this input type") INPUT_DESC_FANFICTION, // - @Meta(what = "input format description", where = "SupportType", format = "", info = "Description of this input type") + @Meta(description = "Description of this input type") INPUT_DESC_FIMFICTION, // - @Meta(what = "input format description", where = "SupportType", format = "", info = "Description of this input type") + @Meta(description = "Description of this input type") INPUT_DESC_MANGAFOX, // - @Meta(what = "input format description", where = "SupportType", format = "", info = "Description of this input type") + @Meta(description = "Description of this input type") INPUT_DESC_E621, // - @Meta(what = "input format description", where = "SupportType", format = "", info = "Description of this input type") + @Meta(description = "Description of this input type") INPUT_DESC_E_HENTAI, // - @Meta(what = "output format description", where = "OutputType", format = "%s = type", info = "Default description when the type is not known by i18n") + @Meta(info = "%s = type", description = "Default description when the type is not known by i18n") OUTPUT_DESC, // - @Meta(what = "output format description", where = "OutputType", format = "", info = "Description of this output type") + @Meta(description = "Description of this output type") OUTPUT_DESC_EPUB, // - @Meta(what = "output format description", where = "OutputType", format = "", info = "Description of this output type") + @Meta(description = "Description of this output type") OUTPUT_DESC_TEXT, // - @Meta(what = "output format description", where = "OutputType", format = "", info = "Description of this output type") + @Meta(description = "Description of this output type") OUTPUT_DESC_INFO_TEXT, // - @Meta(what = "output format description", where = "OutputType", format = "", info = "Description of this output type") + @Meta(description = "Description of this output type") OUTPUT_DESC_CBZ, // - @Meta(what = "output format description", where = "OutputType", format = "", info = "Description of this output type") + @Meta(description = "Description of this output type") OUTPUT_DESC_HTML, // - @Meta(what = "output format description", where = "OutputType", format = "", info = "Description of this output type") + @Meta(description = "Description of this output type") OUTPUT_DESC_LATEX, // - @Meta(what = "short output format description", where = "OutputType", format = "", info = "Description of this output type") + @Meta(description = "Description of this output type") OUTPUT_DESC_SYSOUT, // - @Meta(what = "short output format description", where = "OutputType", format = "%s = type", info = "Default description when the type is not known by i18n") + @Meta(group = true, info = "%s = type", description = "Default description when the type is not known by i18n") OUTPUT_DESC_SHORT, // - @Meta(what = "short output format description", where = "OutputType", format = "", info = "Description of this output type") + @Meta(description = "Short description of this output type") OUTPUT_DESC_SHORT_EPUB, // - @Meta(what = "short output format description", where = "OutputType", format = "", info = "Description of this output type") + @Meta(description = "Short description of this output type") OUTPUT_DESC_SHORT_TEXT, // - @Meta(what = "short output format description", where = "OutputType", format = "", info = "Description of this output type") + @Meta(description = "Short description of this output type") OUTPUT_DESC_SHORT_INFO_TEXT, // - @Meta(what = "short output format description", where = "OutputType", format = "", info = "Description of this output type") + @Meta(description = "Short description of this output type") OUTPUT_DESC_SHORT_CBZ, // - @Meta(what = "short output format description", where = "OutputType", format = "", info = "Description of this output type") + @Meta(description = "Short description of this output type") OUTPUT_DESC_SHORT_LATEX, // - @Meta(what = "short output format description", where = "OutputType", format = "", info = "Description of this output type") + @Meta(description = "Short description of this output type") OUTPUT_DESC_SHORT_SYSOUT, // - @Meta(what = "short output format description", where = "OutputType", format = "", info = "Description of this output type") + @Meta(description = "Short description of this output type") OUTPUT_DESC_SHORT_HTML, // - @Meta(what = "error message", where = "LaTeX", format = "%s = the unknown 2-code language", info = "Error message for unknown 2-letter LaTeX language code") + @Meta(info = "%s = the unknown 2-code language", description = "Error message for unknown 2-letter LaTeX language code") LATEX_LANG_UNKNOWN, // - @Meta(what = "'by' prefix before author name", where = "", format = "", info = "used to output the author, make sure it is covered by Config.BYS for input detection") + @Meta(description = "'by' prefix before author name used to output the author, make sure it is covered by Config.BYS for input detection") BY, // ; diff --git a/src/be/nikiroo/fanfix/bundles/Target.java b/src/be/nikiroo/fanfix/bundles/Target.java index 3318e9e..8b5e867 100644 --- a/src/be/nikiroo/fanfix/bundles/Target.java +++ b/src/be/nikiroo/fanfix/bundles/Target.java @@ -18,4 +18,6 @@ public enum Target { resources, /** UI resources (from colours to behaviour) */ ui, + /** Description of UI resources. */ + ui_description, } diff --git a/src/be/nikiroo/fanfix/bundles/UiConfig.java b/src/be/nikiroo/fanfix/bundles/UiConfig.java index d211947..e83a460 100644 --- a/src/be/nikiroo/fanfix/bundles/UiConfig.java +++ b/src/be/nikiroo/fanfix/bundles/UiConfig.java @@ -1,23 +1,25 @@ package be.nikiroo.fanfix.bundles; import be.nikiroo.utils.resources.Meta; +import be.nikiroo.utils.resources.Meta.Format; /** * The configuration options. * * @author niki */ +@SuppressWarnings("javadoc") public enum UiConfig { - @Meta(what = "directory", where = "", format = "absolute path, $HOME variable supported, / is always accepted as dir separator", info = "The directory where to store temporary files, defaults to directory 'tmp.reader' in the conig directory (usually $HOME/.fanfix)") + @Meta(format = Format.DIRECTORY, info = "absolute path, $HOME variable supported, / is always accepted as dir separator", description = "The directory where to store temporary files, defaults to directory 'tmp.reader' in the conig directory (usually $HOME/.fanfix)") CACHE_DIR_LOCAL_READER, // - @Meta(what = "Output type", where = "Local Reader", format = "One of the known output type", info = "The type of output for the Local Reader for non-images documents") + @Meta(format = Format.COMBO_LIST, list = { "HTML", "CBZ" }, info = "One of the known output type", description = "The type of output for the Local Reader for non-images documents") NON_IMAGES_DOCUMENT_TYPE, // - @Meta(what = "Output type", where = "Local Reader", format = "One of the known output type", info = "The type of output for the Local Reader for images documents") + @Meta(format = Format.COMBO_LIST, list = { "HTML", "CBZ" }, description = "The type of output for the Local Reader for images documents") IMAGES_DOCUMENT_TYPE, // - @Meta(what = "Program", where = "Local Reader", format = "A command to start", info = "The command launched for images documents -- default to the system default for the current file type") + @Meta(info = "A command to start", description = "The command launched for images documents -- default to the system default for the current file type") IMAGES_DOCUMENT_READER, // - @Meta(what = "Program", where = "Local Reader", format = "A command to start", info = "The command launched for non images documents -- default to the system default for the current file type") + @Meta(info = "A command to start", description = "The command launched for non images documents -- default to the system default for the current file type") NON_IMAGES_DOCUMENT_READER, // - @Meta(what = "A background colour", where = "Local Reader Frame", format = "#rrggbb", info = "The background colour if you don't want the default system one") + @Meta(format = Format.COLOR, description = "The background colour if you don't want the default system one") BACKGROUND_COLOR, // } diff --git a/src/be/nikiroo/fanfix/bundles/UiConfigBundle.java b/src/be/nikiroo/fanfix/bundles/UiConfigBundle.java index 2c31d09..8b2c008 100644 --- a/src/be/nikiroo/fanfix/bundles/UiConfigBundle.java +++ b/src/be/nikiroo/fanfix/bundles/UiConfigBundle.java @@ -13,7 +13,7 @@ import be.nikiroo.utils.resources.Bundle; */ public class UiConfigBundle extends Bundle { public UiConfigBundle() { - super(UiConfig.class, Target.ui); + super(UiConfig.class, Target.ui, new UiConfigBundleDesc()); } /** diff --git a/src/be/nikiroo/fanfix/bundles/UiConfigBundleDesc.java b/src/be/nikiroo/fanfix/bundles/UiConfigBundleDesc.java new file mode 100644 index 0000000..da42950 --- /dev/null +++ b/src/be/nikiroo/fanfix/bundles/UiConfigBundleDesc.java @@ -0,0 +1,39 @@ +package be.nikiroo.fanfix.bundles; + +import java.io.File; +import java.io.IOException; + +import be.nikiroo.utils.resources.TransBundle; + +/** + * This class manages the configuration of UI of the application (colours and + * behaviour) + * + * @author niki + */ +public class UiConfigBundleDesc extends TransBundle { + public UiConfigBundleDesc() { + super(UiConfig.class, Target.ui_description); + } + + /** + * Update resource file. + * + * @param args + * not used + * + * @throws IOException + * in case of I/O error + */ + public static void main(String[] args) throws IOException { + String path = new File(".").getAbsolutePath() + + "/src/be/nikiroo/fanfix/bundles/"; + new UiConfigBundleDesc().updateFile(path); + System.out.println("Path updated: " + path); + } + + @Override + protected String getBundleDisplayName() { + return "UI configuration options description"; + } +} diff --git a/src/be/nikiroo/fanfix/bundles/config.properties b/src/be/nikiroo/fanfix/bundles/config.properties index 2fa3d32..6151843 100644 --- a/src/be/nikiroo/fanfix/bundles/config.properties +++ b/src/be/nikiroo/fanfix/bundles/config.properties @@ -2,63 +2,66 @@ # -# (WHAT: language (example: en-GB, fr-BE...) or nothing for default system language, FORMAT: Locale|'') -# Force the language (can be overwritten again with the env variable $LANG) +# language (example: en-GB, fr-BE...) or nothing for default system language +# (FORMAT: LOCALE) Force the language (can be overwritten again with the env variable $LANG) LANG = -# (WHAT: reader type (CLI = simple output to console, LOCAL = use local system file handler), FORMAT: 'CLI'|'LOCAL') -# Select the default reader to use to read stories +# reader type (CLI = simple output to console, LOCAL = use local system file handler) +# (FORMAT: FIXED_LIST) Select the default reader to use to read stories +# ALLOWED VALUES: "CLI" "LOCAL" READER_TYPE = -# (WHAT: absolute path, $HOME variable supported, / is always accepted as dir separator, FORMAT: Directory) -# The directory where to store temporary files, defaults to directory 'tmp' in the conig directory (usually $HOME/.fanfix) +# absolute path, $HOME variable supported, / is always accepted as dir separator +# (FORMAT: DIRECTORY) The directory where to store temporary files, defaults to directory 'tmp' in the conig directory (usually $HOME/.fanfix) CACHE_DIR = -# (WHAT: delay in hours, or 0 for no cache, or -1 for infinite time (default), FORMAT: int) -# The delay after which a cached resource that is thought to change ~often is considered too old and triggers a refresh +# delay in hours, or 0 for no cache, or -1 for infinite time (default) +# (FORMAT: INT) The delay after which a cached resource that is thought to change ~often is considered too old and triggers a refresh CACHE_MAX_TIME_CHANGING = 24 -# (WHAT: delay in hours, or 0 for no cache, or -1 for infinite time (default), FORMAT: int) -# The delay after which a cached resource that is thought to change rarely is considered too old and triggers a refresh +# delay in hours, or 0 for no cache, or -1 for infinite time (default) +# (FORMAT: INT) The delay after which a cached resource that is thought to change rarely is considered too old and triggers a refresh CACHE_MAX_TIME_STABLE = -# (WHAT: string, FORMAT: String) -# The user-agent to use to download files +# string (FORMAT: STRING) The user-agent to use to download files USER_AGENT = 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) -# (WHAT: absolute path, $HOME variable supported, / is always accepted as dir separator, FORMAT: Directory) -# The directory where to get the default story covers +# 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/ -# (WHAT: absolute path, $HOME variable supported, / is always accepted as dir separator, FORMAT: Directory) -# The directory where to store the 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 -# (WHAT: boolean, FORMAT: 'true'|'false') -# Show debug information on errors +# boolean (FORMAT: BOOLEAN) Show debug information on errors DEBUG_ERR = false -# (WHAT: image format, FORMAT: 'PNG'|JPG'|'BMP') -# Image format to use for cover images +# image format (FORMAT: COMBO_LIST) Image format to use for cover images +# ALLOWED VALUES: "PNG" "JPG" "BMP" IMAGE_FORMAT_COVER = png -# (WHAT: image format, FORMAT: 'PNG'|JPG'|'BMP') -# Image format to use for content images +# image format (FORMAT: COMBO_LIST) Image format to use for content images +# ALLOWED VALUES: "PNG" "JPG" "BMP" IMAGE_FORMAT_CONTENT = png -# (WHAT: LaTeX output language, WHERE: LaTeX, FORMAT: String) -# LaTeX full name for English +# This item is used as a group, its content is not expected to be used. +LATEX_LANG = +# LaTeX output language: English +# (FORMAT: STRING) LaTeX full name LATEX_LANG_EN = english -# (WHAT: LaTeX output language, WHERE: LaTeX, FORMAT: String) -# LaTeX full name for French +# LaTeX output language: French +# (FORMAT: STRING) LaTeX full name LATEX_LANG_FR = french -# (WHAT: other 'by' prefixes before author name, FORMAT: comma-separated list|String) -# used to identify the author +# other 'by' prefixes before author name, used to identify the author +# (FORMAT: STRING) +# (This item accept a list of comma-separated values) BYS = by,par,de,©,(c) -# (WHAT: Chapter identification languages, FORMAT: comma-separated list|String) -# used to identify a starting chapter in text mode +# List of languages codes used for chapter identification (should not be changed) +# (FORMAT: STRING) EN,FR +# (This item accept a list of comma-separated values) CHAPTER = EN,FR -# (WHAT: Chapter identification string, WHERE: String) -# used to identify a starting chapter in text mode +# Chapter identification String: English +# (FORMAT: STRING) used to identify a starting chapter in text mode CHAPTER_EN = Chapter -# (WHAT: Chapter identification string, WHERE: String) -# used to identify a starting chapter in text mode +# Chapter identification String: French +# (FORMAT: STRING) used to identify a starting chapter in text mode CHAPTER_FR = Chapitre -# (WHAT: Login information, FORMAT: String) -# used to login on YiffStar to have access to all the stories (should not be necessary anymore) +# Login information (username) for YiffStar to have access to all the stories (should not be necessary anymore) +# (FORMAT: STRING) LOGIN_YIFFSTAR_USER = -# (WHAT: Login information, FORMAT: Password) -# used to login on YiffStar to have access to all the stories (should not be necessary anymore) +# Login information (password) for YiffStar to have access to all the stories (should not be necessary anymore) +# (FORMAT: PASSWORD) LOGIN_YIFFSTAR_PASS = -# (WHAT: Minimum time between version update checks in days, or -1 for 'no checks' -- default is 1 day, WHERE: VersionCheck, FORMAT: int) -# If the last update check was done at least that many days, check for updates at startup +# 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: INT) UPDATE_INTERVAL = diff --git a/src/be/nikiroo/fanfix/bundles/resources.properties b/src/be/nikiroo/fanfix/bundles/resources.properties index c5c3137..f664eb4 100644 --- a/src/be/nikiroo/fanfix/bundles/resources.properties +++ b/src/be/nikiroo/fanfix/bundles/resources.properties @@ -7,8 +7,8 @@ # -# (WHAT: help message, WHERE: cli, FORMAT: %s = supported input, %s = supported output) # help message for the syntax +# (FORMAT: STRING) %s = supported input, %s = supported output HELP_SYNTAX = Valid options:\n\ \t--import [URL]: import into library\n\ \t--export [id] [output_type] [target]: export story to target\n\ @@ -25,139 +25,138 @@ Supported input types:\n\ \n\ Supported output types:\n\ %s -# (WHAT: error message, WHERE: cli) -# syntax error message +# syntax error message (FORMAT: STRING) ERR_SYNTAX = Syntax error (try "--help") -# (WHAT: error message, WHERE: cli, FORMAT: %s = support name, %s = support desc) # an input or output support type description +# (FORMAT: STRING) %s = support name, %s = support desc ERR_SYNTAX_TYPE = %s: %s -# (WHAT: error message, WHERE: cli, FORMAT: %s = input string) # Error when retrieving data +# (FORMAT: STRING) %s = input string ERR_LOADING = Error when retrieving data from: %s -# (WHAT: error message, WHERE: cli, FORMAT: %s = save target) # Error when saving to given target +# (FORMAT: STRING) %s = save target ERR_SAVING = Error when saving to target: %s -# (WHAT: error message, WHERE: cli, FORMAT: %s = bad output format) # Error when unknown output format +# (FORMAT: STRING) %s = bad output format ERR_BAD_OUTPUT_TYPE = Unknown output type: %s -# (WHAT: error message, WHERE: cli, FORMAT: %s = input string) # Error when converting input to URL/File +# (FORMAT: STRING) %s = input string ERR_BAD_URL = Cannot understand file or protocol: %s -# (WHAT: error message, WHERE: cli, FORMAT: %s = input url) # URL/File not supported +# (FORMAT: STRING) %s = input url ERR_NOT_SUPPORTED = URL not supported: %s -# (WHAT: error message, WHERE: BasicSupport, FORMAT: %s = cover URL) # Failed to download cover : %s +# (FORMAT: STRING) %s = cover URL ERR_BS_NO_COVER = Failed to download cover: %s -# (WHAT: char, WHERE: LaTeX/BasicSupport, FORMAT: single char) # Canonical OPEN SINGLE QUOTE char (for instance: `) +# (FORMAT: STRING) single char OPEN_SINGLE_QUOTE = ` -# (WHAT: char, WHERE: LaTeX/BasicSupport, FORMAT: single char) # Canonical CLOSE SINGLE QUOTE char (for instance: ‘) +# (FORMAT: STRING) single char CLOSE_SINGLE_QUOTE = ‘ -# (WHAT: char, WHERE: LaTeX/BasicSupport, FORMAT: single char) # Canonical OPEN DOUBLE QUOTE char (for instance: “) +# (FORMAT: STRING) single char OPEN_DOUBLE_QUOTE = “ -# (WHAT: char, WHERE: LaTeX/BasicSupport, FORMAT: single char) # Canonical CLOSE DOUBLE QUOTE char (for instance: ”) +# (FORMAT: STRING) single char CLOSE_DOUBLE_QUOTE = ” -# (WHAT: chapter name, WHERE: BasicSupport) # Name of the description fake chapter +# (FORMAT: STRING) DESCRIPTION = Description -# (WHAT: chapter name, FORMAT: %d = number, %s = name) # Name of a chapter with a name +# (FORMAT: STRING) %d = number, %s = name CHAPTER_NAMED = Chapter %d: %s -# (WHAT: chapter name, FORMAT: %d = number, %s = name) # Name of a chapter without name +# (FORMAT: STRING) %d = number, %s = name CHAPTER_UNNAMED = Chapter %d -# (WHAT: input format description, WHERE: SupportType, FORMAT: %s = type) # Default description when the type is not known by i18n +# (FORMAT: STRING) %s = type INPUT_DESC = Unknown type: %s -# (WHAT: input format description, WHERE: SupportType) # Description of this input type +# (FORMAT: STRING) INPUT_DESC_EPUB = EPUB files created by this program (we do not support "all" EPUB files) -# (WHAT: input format description, WHERE: SupportType) # Description of this input type +# (FORMAT: STRING) INPUT_DESC_TEXT = Support class for local stories encoded in textual format, with a few rules :\n\ \tthe title must be on the first line, \n\ \tthe author (preceded by nothing, "by " or "©") must be on the second line, possibly with the publication date in parenthesis (i.e., "By Unknown (3rd October 1998)"), \n\ \tchapters must be declared with "Chapter x" or "Chapter x: NAME OF THE CHAPTER", where "x" is the chapter number,\n\ \ta description of the story must be given as chapter number 0,\n\ \ta cover image may be present with the same filename but a PNG, JPEG or JPG extension. -# (WHAT: input format description, WHERE: SupportType) # Description of this input type +# (FORMAT: STRING) INPUT_DESC_INFO_TEXT = Contains the same information as the TEXT format, but with a companion ".info" file to store some metadata -# (WHAT: input format description, WHERE: SupportType) # Description of this input type +# (FORMAT: STRING) INPUT_DESC_FANFICTION = Fan fictions of many, many different universes, from TV shows to novels to games. -# (WHAT: input format description, WHERE: SupportType) # Description of this input type +# (FORMAT: STRING) INPUT_DESC_FIMFICTION = Fanfictions devoted to the My Little Pony show -# (WHAT: input format description, WHERE: SupportType) # Description of this input type +# (FORMAT: STRING) INPUT_DESC_MANGAFOX = A well filled repository of mangas, or, as their website states: Most popular manga scanlations read online for free at mangafox, as well as a close-knit community to chat and make friends. -# (WHAT: input format description, WHERE: SupportType) # Description of this input type +# (FORMAT: STRING) INPUT_DESC_E621 = Furry website supporting comics, including MLP -# (WHAT: input format description, WHERE: SupportType) # Description of this input type +# (FORMAT: STRING) INPUT_DESC_E_HENTAI = Website offering many comics/manga, mostly but not always NSFW (hence 'Hentai'); MLP comics can be found there, too -# (WHAT: output format description, WHERE: OutputType, FORMAT: %s = type) # Default description when the type is not known by i18n +# (FORMAT: STRING) %s = type OUTPUT_DESC = Unknown type: %s -# (WHAT: output format description, WHERE: OutputType) # Description of this output type +# (FORMAT: STRING) OUTPUT_DESC_EPUB = Standard EPUB file working on most e-book readers and viewers -# (WHAT: output format description, WHERE: OutputType) # Description of this output type +# (FORMAT: STRING) OUTPUT_DESC_TEXT = Local stories encoded in textual format, with a few rules :\n\ \tthe title must be on the first line, \n\ \tthe author (preceded by nothing, "by " or "©") must be on the second line, possibly with the publication date in parenthesis (i.e., "By Unknown (3rd October 1998)"), \n\ \tchapters must be declared with "Chapter x" or "Chapter x: NAME OF THE CHAPTER", where "x" is the chapter number,\n\ \ta description of the story must be given as chapter number 0,\n\ \ta cover image may be present with the same filename but a PNG, JPEG or JPG extension. -# (WHAT: output format description, WHERE: OutputType) # Description of this output type +# (FORMAT: STRING) OUTPUT_DESC_INFO_TEXT = Contains the same information as the TEXT format, but with a companion ".info" file to store some metadata -# (WHAT: output format description, WHERE: OutputType) # Description of this output type +# (FORMAT: STRING) OUTPUT_DESC_CBZ = CBZ file (basically a ZIP file containing images -- we store the images in PNG format) -# (WHAT: output format description, WHERE: OutputType) # Description of this output type +# (FORMAT: STRING) OUTPUT_DESC_HTML = HTML files (a directory containing the resources and "index.html") -# (WHAT: output format description, WHERE: OutputType) # Description of this output type +# (FORMAT: STRING) OUTPUT_DESC_LATEX = A LaTeX file using the "book" template -# (WHAT: short output format description, WHERE: OutputType) # Description of this output type +# (FORMAT: STRING) OUTPUT_DESC_SYSOUT = A simple DEBUG console output -# (WHAT: short output format description, WHERE: OutputType, FORMAT: %s = type) # Default description when the type is not known by i18n +#This item is used as a group, its content is not expected to be used. OUTPUT_DESC_SHORT = %s -# (WHAT: short output format description, WHERE: OutputType) -# Description of this output type +# Short description of this output type +# (FORMAT: STRING) OUTPUT_DESC_SHORT_EPUB = Electronic book (.epub) -# (WHAT: short output format description, WHERE: OutputType) -# Description of this output type +# Short description of this output type +# (FORMAT: STRING) OUTPUT_DESC_SHORT_TEXT = Plain text (.txt) -# (WHAT: short output format description, WHERE: OutputType) -# Description of this output type +# Short description of this output type +# (FORMAT: STRING) OUTPUT_DESC_SHORT_INFO_TEXT = Plain text and metadata -# (WHAT: short output format description, WHERE: OutputType) -# Description of this output type +# Short description of this output type +# (FORMAT: STRING) OUTPUT_DESC_SHORT_CBZ = Comic book (.cbz) -# (WHAT: short output format description, WHERE: OutputType) -# Description of this output type +# Short description of this output type +# (FORMAT: STRING) OUTPUT_DESC_SHORT_LATEX = LaTeX (.tex) -# (WHAT: short output format description, WHERE: OutputType) -# Description of this output type +# Short description of this output type +# (FORMAT: STRING) OUTPUT_DESC_SHORT_SYSOUT = Console output -# (WHAT: short output format description, WHERE: OutputType) -# Description of this output type +# Short description of this output type +# (FORMAT: STRING) OUTPUT_DESC_SHORT_HTML = HTML files with resources (directory, .html) -# (WHAT: error message, WHERE: LaTeX, FORMAT: %s = the unknown 2-code language) # Error message for unknown 2-letter LaTeX language code +# (FORMAT: STRING) %s = the unknown 2-code language LATEX_LANG_UNKNOWN = Unknown language: %s -# (WHAT: 'by' prefix before author name) -# used to output the author, make sure it is covered by Config.BYS for input detection +# 'by' prefix before author name used to output the author, make sure it is covered by Config.BYS for input detection +# (FORMAT: STRING) BY = by diff --git a/src/be/nikiroo/fanfix/bundles/ui.properties b/src/be/nikiroo/fanfix/bundles/ui.properties index 8c7428d..5f251c5 100644 --- a/src/be/nikiroo/fanfix/bundles/ui.properties +++ b/src/be/nikiroo/fanfix/bundles/ui.properties @@ -2,21 +2,23 @@ # -# (WHAT: directory, FORMAT: absolute path, $HOME variable supported, / is always accepted as dir separator) # The directory where to store temporary files, defaults to directory 'tmp.reader' in the conig directory (usually $HOME/.fanfix) +# (FORMAT: DIRECTORY) absolute path, $HOME variable supported, / is always accepted as dir separator CACHE_DIR_LOCAL_READER = -# (WHAT: Output type, WHERE: Local Reader, FORMAT: One of the known output type) # The type of output for the Local Reader for non-images documents +# (FORMAT: COMBO_LIST) One of the known output type +# ALLOWED VALUES: "HTML" "CBZ" NON_IMAGES_DOCUMENT_TYPE = HTML -# (WHAT: Output type, WHERE: Local Reader, FORMAT: One of the known output type) # The type of output for the Local Reader for images documents +# (FORMAT: COMBO_LIST) +# ALLOWED VALUES: "HTML" "CBZ" IMAGES_DOCUMENT_TYPE = CBZ -# (WHAT: Program, WHERE: Local Reader, FORMAT: A command to start) # The command launched for images documents -- default to the system default for the current file type +# (FORMAT: STRING) A command to start IMAGES_DOCUMENT_READER = -# (WHAT: Program, WHERE: Local Reader, FORMAT: A command to start) # The command launched for non images documents -- default to the system default for the current file type +# (FORMAT: STRING) A command to start NON_IMAGES_DOCUMENT_READER = -# (WHAT: A background colour, WHERE: Local Reader Frame, FORMAT: #rrggbb) # The background colour if you don't want the default system one +# (FORMAT: COLOR) BACKGROUND_COLOR = #FFFFFF diff --git a/src/be/nikiroo/fanfix/bundles/ui_description.properties b/src/be/nikiroo/fanfix/bundles/ui_description.properties new file mode 100644 index 0000000..4b0792a --- /dev/null +++ b/src/be/nikiroo/fanfix/bundles/ui_description.properties @@ -0,0 +1,29 @@ +# United Kingdom (en_GB) UI configuration options description translation file (UTF-8) +# +# Note that any key can be doubled with a _NOUTF suffix +# to use when the NOUTF env variable is set to 1 +# +# Also, the comments always refer to the key below them. +# + + +# The directory where to store temporary files, defaults to directory 'tmp.reader' in the conig directory (usually $HOME/.fanfix) +# (FORMAT: DIRECTORY) absolute path, $HOME variable supported, / is always accepted as dir separator +CACHE_DIR_LOCAL_READER = The directory where to store temporary files, defaults to directory 'tmp.reader' in the config directory (usually $HOME/.fanfix) -- this is an absolute path, $HOME variable supported, / is always accepted as dir separator +# The type of output for the Local Reader for non-images documents +# (FORMAT: COMBO_LIST) One of the known output type +# ALLOWED VALUES: "HTML" "CBZ" +NON_IMAGES_DOCUMENT_TYPE = +# The type of output for the Local Reader for images documents +# (FORMAT: COMBO_LIST) +# ALLOWED VALUES: "HTML" "CBZ" +IMAGES_DOCUMENT_TYPE = +# The command launched for images documents -- default to the system default for the current file type +# (FORMAT: STRING) A command to start +IMAGES_DOCUMENT_READER = +# The command launched for non images documents -- default to the system default for the current file type +# (FORMAT: STRING) A command to start +NON_IMAGES_DOCUMENT_READER = +# The background colour if you don't want the default system one +# (FORMAT: COLOR) +BACKGROUND_COLOR = -- 2.27.0 From c1873e5678fabf306915c54f9c1736e03e027d60 Mon Sep 17 00:00:00 2001 From: Niki Roo Date: Tue, 27 Jun 2017 18:25:20 +0200 Subject: [PATCH 10/16] Add a new TUI system based upon Jexer (WIP) --- Makefile.base | 2 +- README.md | 6 ++ changelog.md | 3 + libs/jexer-0.0.4-sources.jar | Bin 0 -> 242363 bytes libs/jexer-0.0.4-sources.patch.jar | Bin 0 -> 20542 bytes src/be/nikiroo/fanfix/Main.java | 8 +- src/be/nikiroo/fanfix/bundles/Config.java | 4 +- .../nikiroo/fanfix/bundles/config.properties | 4 +- .../fanfix/bundles/resources.properties | 2 +- src/be/nikiroo/fanfix/reader/BasicReader.java | 54 ++++++++++- src/be/nikiroo/fanfix/reader/LocalReader.java | 56 +---------- src/be/nikiroo/fanfix/reader/TuiReader.java | 35 +++++++ .../fanfix/reader/TuiReaderApplication.java | 75 +++++++++++++++ .../fanfix/reader/TuiReaderMainWindow.java | 91 ++++++++++++++++++ .../fanfix/reader/TuiReaderStoryWindow.java | 60 ++++++++++++ 15 files changed, 335 insertions(+), 65 deletions(-) create mode 100644 libs/jexer-0.0.4-sources.jar create mode 100644 libs/jexer-0.0.4-sources.patch.jar create mode 100644 src/be/nikiroo/fanfix/reader/TuiReader.java create mode 100644 src/be/nikiroo/fanfix/reader/TuiReaderApplication.java create mode 100644 src/be/nikiroo/fanfix/reader/TuiReaderMainWindow.java create mode 100644 src/be/nikiroo/fanfix/reader/TuiReaderStoryWindow.java diff --git a/Makefile.base b/Makefile.base index 54dbf1a..ef0b926 100644 --- a/Makefile.base +++ b/Makefile.base @@ -108,7 +108,7 @@ test-resources: resources libs: bin @[ -e bin/libs -o ! -d libs ] || echo Extracting sources from libs... - @[ -e bin/libs -o ! -d libs ] || (cd src && for lib in ../libs/*-sources.jar; do \ + @[ -e bin/libs -o ! -d libs ] || (cd src && for lib in ../libs/*-sources.jar ../libs/*-sources.patch.jar; do \ basename "$$lib"; \ jar xf "$$lib"; \ done ) diff --git a/README.md b/README.md index f66be31..826aacb 100644 --- a/README.md +++ b/README.md @@ -111,6 +111,12 @@ Currently missing, but either in progress or planned: - [x] ..as a screen view - [x] options screen - [ ] A TUI reader + - [x] Choose an output (Jexer) + - [x] Implement it from --set-reader to the actual window + - [x] List the stories + - [ ] Fix the UI layout + - [ ] Status bar and real menus + - [ ] Open a story in the reader and/or natively - [ ] Check if it can work on Android - [x] First checks: it should work, but with changes - [ ] Adapt work on images :( diff --git a/changelog.md b/changelog.md index f399def..89b6b00 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,8 @@ # Fanfix +## Version WIP +- New reader type: TUI (a text user interface with windows and menus) + ## Version 1.5.3 - FimFiction: Fix tags and chapter handling for some stories diff --git a/libs/jexer-0.0.4-sources.jar b/libs/jexer-0.0.4-sources.jar new file mode 100644 index 0000000000000000000000000000000000000000..b0819e01ab9eb38166bfa2ed761ab53edf238886 GIT binary patch literal 242363 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

    e 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⪻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 literal 0 HcmV?d00001 diff --git a/libs/jexer-0.0.4-sources.patch.jar b/libs/jexer-0.0.4-sources.patch.jar new file mode 100644 index 0000000000000000000000000000000000000000..85dc502747923c3b5f604ef8a2151c8e83dcc506 GIT binary patch literal 20542 zcmV)eK&HP?O9KQH000OG0Oms5N&o-=00IC20000000{sD08K?yK`lv6Mlb%#00093 zP)h>@6aWAS2mt0n+e%RiDojKG002b*000yK002!zR6#9CPDU?HK~70VMN?ERO-A!g z%*#wmEiTawOD!tS%+Iq@Fw`^P<#H}cO)N=G(RHc>30UYE#2XqLDroo@B_`*jDmdpC z733EsmH^dj@^bNV0RT`-0|XQU000O8_K@33bii8xS2h3uVjlqj7XSbNYGrt3axYXt zaBysCV_|e@Z*DGXVRm8ETWxdOL=gU-U$JBc#_bq~cNhW%H*txn69?NN?EoKS=^P)G zbmHz5*D(F>?C$v-8R=Bh1_m^pM$+9q`*QoHm3;K@03O2k;-%2=K71eDMlcgEEnFGA zG0d&dizpTcz|&?+0q4URjASfwBcOv94>n^bs#t4zv$W7Tc>o`M@Zsn1RNTrOMp346 z>me?M&ZIF?;7Z_!zo-&#y<{E z2d8k@pW^jl7p{l1v+>moaK@y6F?$ZOG z@Zw~2bvnHG4j$vui!oaK5KSF%XJex2(T0O5;hhgACuexse>@xwXU}=po(yLfg#2VY zfj(UJC$r(n)u=y#%d5%dcsf8PP7(QHc=2R{ga+q>i&+l|<2@Msh!-$D>yJiW$o>_I zF(F3bWPJI2GW_mr24~~Z=>Ts&9w2}H$D;vJW9d#t{o#2RPW$Km?*_bTj3^`|&h%`; z_1S>#64gHbJDCl~7bp)>xR_1wvWwzQX4}=*!|9+4{mF2O46}@rF%m)T(xNfp(9(+m z1F`0JHVCKi^%Y8A<>++KA0gtD)>r5IP5w42(Z}>|IDwyD&}A=mm*3uGkxYBB%6{P` zw?eb!eTY{_2SpUWh;9V@N@4E!;6P?%Snw-GyPj0NVP2GWYPE>6dK zal#y}Rpd$UvHKesolQxj;ikbQKF@MDlhlus`j?L89Q$WRbQ|q*2U9atKtah!vn`C2D0*Gm(Wz3#wnh z6e5-j$qah5xqw)ZVT$B$Fv?`FnZ~834PP@~b%tjv1si_`yDo%bhA_y=l+1aTtn&m< z6oSTBia~QyHnEnSxs%CNW*-Dqm-?PQ#TbLd+GF*y z3ocL7DX%v&L$ePA1&;rX^47CJ*cE18GnF*cY-XNrHRDuQ9S05hdMPYw7+6D=pO#wo z$tzUpJGE8O+*Y*n=tGaka?vKtVKtTMGPX)r@vAexEh3B=Rk^`7sIXy)=SBLEOnRsa zUGu7qsLhfx#|>)iaPST8QkN0@!E^trtp~nl@CPy4t4jR!&c4^@Zq@D~{TvEWZI-y} zm~DdJDw%*T^G=Ohj4mTwP0oed)H`FVrA!5M-l-b6+VkSfr1BrTM=m1$LCvSLb& z1~S2`_9X!ght+Eu2^?mf$4jkpES(eRR525cCdV89Ln%tZ@GXa2v@Y*aagMrt1Rpr0 z_G6BA`QkV{jW;?xvZuIYOZ&)GEyniXzFKY-^whfO9KLG+|Cv;X;^+L(`KEW3_QTuy zH*mN)J%lgea2vV~AG}Ua;bHGjD>TCn;{1D>=wJ7r4*px3Ao)7)_!#wCj^2B3*WkBo zu+dLMEF?w;`1)(e%QS7r+e4KUEvBBtCUAE_aNjeJ*Hksw9#B2L68m7?D9hbq$__ag zm0=3y{ww8&l~$Wp>>f~rz!^m?7BClfB@l2eMVg?$Er)LNIk$V+P%v?TW9$WR( z6it~f)DSlZ&#gjB$ID!Foddawiq4zR+>?3Tu6<#o(qyFK7r5yu{&6P2*3e{akugGB z=xi5l9?om=+jmjYl-~$ACO|D*>;E@O%e4h0a_9Isq~J=Q&*5$D^dBoO_A4w<3tU;; zzbVq;MQ!6li%i{$&Ih;+`-4{jwJ0K4>0E@AQK_O|lPRl)#3F=v1A+F_g6HGI{)h*A zWY~W)vj(&i%%mLXz$%wV58BqAj`ljxxb*CRk{dwV~Cw z%4JPhN%Yw=r-0z!q0%n3Va<8+T%>A+e0@)htfChJ=otf_cK(%Y`u17$Rhx(xYK3Z$ z)b+9gvNdS25SqFrU=%k$T2`|*s@$NewV($=11qIpQ2nFw>hp5%;O#Sb8$*~`IE%a! zoTP;?h_71nfC zNpEHTW(m&fGL+wjn0s$sF6J_pcM{aXUErQ3)PNIdde=wc$NB~=?h1fa&TGm7a&)AF zz1=0`8kH$E^AFV_yp#S}pQVS6=bbxl%&Ql|o5HJlySu&j6KJ#Fsx-1lx~YrS;MB*B zWS#NcA7O{L7wHwR2F)t(Bhelh+z4w)T<-kcMrkS9McEdh56^FAYd5PQJUVp z-SZ&dx->^jQMPcl3u;m4u+gr(8P_SY9>eXc_Er_ZqepejFNwn+nZb9>VXbvlXBoGr zzBQg@k5zkx5a?Bgo>Qy+co!gO8);9>5=!Huf`FS;&7+jxXo|mL%>@Dpi2P@2i&Arm zz>e)-C{u!OYI$!gr6RV^+r;&rO=;$XU$Lsi!WVSRw|`|DN4XbDT359-*Jy5+dmN-X zpW+tWQ;Q+cUf{hAr}N4-*X@IO3!Bf@GVY+?%BUYce29(LMx%6IxMlYEO~VK0j{jl& zDD!)dAYXljsO>T2=ll(#$euC6i}scV$ouK1g>9vpbndAP0(!ffZ{KJNkG4CFEeedM zK<_hrI3t6hXtu2Cf4{QGo9{k#QBwfUg-Fb%SI9NHCi7N#H4-P0jljJWF10Wo&3(j! zMij*sR-^$hhwnj>+U~lO)n^=0v2(8>W@F`(#n#lll6cl8M@a1uOiK-CtSWY#`fVKr z6Kw=DvX&Z2CuwA?6YDN5R#KYRgEMNpQ3XQFv|6RKu)fKxq-rAc?i0*| z;T#ywf4k-$%!1(z_#tZYEwW!Y^S!#SwDj!Rv!=B4>i_3xv}Y3k8R{Rv_$e{wM)!BG zNZWh$FHA#Cpn*c5E%5!rAA;?ESF-)A8R`7TKKks(6g&KnJBsDn$e1c?{s_1WFT{GT zBAvJotuj@b=4WyLL7}g3>xtz%uD1Ndw$jH>sei-hKbiEzZiL;O?iiMX@~rr+4ly)k zQN#TB8DVzZIC107TA1loCWRR5qiZ87D;r{^bmH2?&l)vPPVeSEJKh`W`D>t_*P+H~ z0{-U{YVo(YQ)zO}47Q>MxC}!E7-c_q?*+G?5iTT^+c00drfD@yGT=Q;I`2^$3>6a z(mM7O6AZVdG0*U#1WY-9|IG=}ayl{1Ezr2s8YNBFNKoDiW~&*K;T&6nPhHQd(I*JW zM>bp%i&W^yDji5>=TY(1_BRS$*#6q#(azciN~zldkT}`2tHL8@o3jQu_hE_QNbFj} z28xn@B$q1f+rqQ~cfXWrBw85y=8B| z#qZ2Z{)wTp*H*`N>U-puHrSiYgsyzv?`kS5F>tp!C$D=1mj2XXs}FwSrDU}RJtX`L zN8d*J;-!^_fB#No&~xOU>>XLp(=hCvUlArDIx)&6Bn0At8^kGYcq?1jD!LXm888X{ zJ3g8@X__*|E%AwuZ(9?`acn2?wN~?HzVATXKb?8-%G1!4f642j^kTVtztHBLrI7KP z6wLh51@TI#w@ZhCHcy(hUKCqAY<_Gu)dCf0UCt3KJH-mM-c+_cS%FSvfofU@#{$}K ziq`CrXaTcwn1PCf37#3``|p`yLMFZkL_%s9Ulf_OHzbyIz|26-cG!obC-U zKv`7Hvde50lbM=ug@NbY32>rL#8L9Fgx4^K zBb(yON1U_EZ|=Ah4$`C@lx!N9A^pse9P^#>hj*vHdX=w9hJ*=#|81+B%;?}2l9usC z62|=Gv7EB1X2D0Cge5vUcu4tTJJ=NVY1CMTGnxsCT4{N26m_e~&f!487FSs39`Z7` zIj4F+Nd#AP&Ia)j^(QRx347q{r%0HOC0VC@SRxUe07V437;vof5?!W%SU;neZR5!wH0ed)ukAr^iRFz&9 z)s=QhRXHU1cXFo&CrG&nk{uyhJ~Hc_@E2^z7!<5GDvtO9o)!vDehZLrcfA4DPl!;7 zTnW7FvnLKxlLB=n7!1I)8WZ1Ij9?<#s<$FcomH%?DNJ78x@@^Fl9$qN>XYuyV5pf< zCEroKOjX1QdV^sQtB~kRpu;y7`qZ6+3%IueAl3Hh6x;d(*0@o_;n+dL{<-3L(qXUq zSZobW5w7^%6br=?Nn!cw+0&aRFDTu~P~IaL>=7Nsq@=>WBy*sEat>txmn#H1iXPTx z2+->w36_7W_L6=bugN}04MHk19j5!LwEa~A5AEPz`rG8MM`5+8fx^`miGRE$avw*@ zvPQD0v#EoG=_Sp=i5eFN;_PLOE6x3L{NtpDgIPJHv(Mk$Tts4wvHN{LGMg4k3W|Im z0Hf{W;^Tb~SxL1tI+SmK;`9Owgt2y;%Z(i9U{-WxgXT*<+2TZDS%^SHNLSEFnWoYe zX8>OZyw1%WAaFU&SJ=VG=#iAAwg|+YS&r$+D!`Ga)uavbgGGo%$E^^L(3dM&0ypri zmoh5Eo*p1fGBXEV;Qbe{zfZvaMUD;l5_vC6upU{UzL&F51;9~3X$tzq#bt$pd{5^T zx(9YZ92c7LtB5KbXYS1WMTOXI75$G(v~2dIW8Z&;`eCmlLAH?HyqEL=E+Qc16GkF*d60n^Zr-IhE<{kwurWKe2E&480QAw$Yb0RDhuwQ<2UtcI4AQv>9<61>5UXq# zlz`a{96vEtpFgYJgIBu;ucqlRYC1MIb+uKrEPNDM6$XCazt^?K{ai#;VRG#vPr7sSfzdMoKMQ+iPT8pp_0}?TkNzNoQ0Mf(nM`(w0f<;n?biTkE1|3&H*+m-@m7nnzA((5b$8J_r5+39pJ== z@6g;jxWEMWS_dmjaKQ?eLc<1mdZyrCZ%>DVs9k}dPaRjs17}~%dpM_w+lM9lTJ$M4 zFoGx@YA7}!q&^+1sqsbbB7`532x>z(T>4h4`?X%f#xQNB9;q+t!!yU`6e0l6EP}{ zgE3Cn2cA~CULvc4f9fo=YkJaxRWu0OctBimAb@pdXt0?NDmkUy!cjH-Vs3RiHY}=N zHz@qNAsxY49-pj07tJ^J&f-%xjbwnqn{2mS!`c=;cv%@s)O37dfK^lH!MF=t4R3BL__oyMEu!!x35=JV3M@*AoZ% z$)@^*+FpgGX7}pyPSqeCcP)5iVI1io3D^fsQijfr+lYpDr?GyovZSRgn9r*;7$USF z7irbRIjtqx;^R*5X>X>kF(Lf4$s}^qSFDT=G|eq=knFUhTY6}D+-rM}(HiG1xpKX4 z%374%_(f;*a+AK$1jAGD=HL|nmh)($bG)m-z(LF18)natd-Qbg0$ndt*_o+>m^vkSzb6I%q243$Oe6fdNdil&{?6IQ75fQ)Yej6_c7 z1H3zPF&82S`8A4Koj=WVrxa{WDVBsXPIUl|b2gFX#5Zf$!n`ATG3hu0nL}hLH*N?P z*OPh+2MP5CzC}T|20fFeK_}=IBl_p>;BQ$E^bH05QJ0oCP*hZwozxP}AGt0&e>ysS zMr-7{%7zjZ_A6KaKCUxg!4Pw$0^qcM zhbnZgTig4x6Sit~>R_gd1s!$tP65z4lH}Y0+r0PAF{nx;Q#=mzU`W(~12LVtcg&oO z7>KkWg>=Mf9eE&jhf;$*yrFEs&S4)}7dD&p#xy*{#Y7<~QSWf=_ki>HI7>$+ByMKc z8$5chn^t?}bD%>%JJ*jYv@Hg)_8>{I<)l+N=6d|ju%Zfh<12ed*Bmzue5Sv`g#j+) zqbWQvLt18-rhLrMhJi8=IvvJ$XA;x1eVp!aE(8A^?XLA}>$9omX3sCAHF)BH93yRKnbzd}ClDD~T7}7se(2qF(rJZIxzVU; zfTo&au8%6&Z<}3lUdch_dp@Ds3k(0nLYk(mE=rbGtxING- z2Gi0)s>O?A7I_N|BW~0ZOp`~ z1kXn_rl0>QO(w>ltt;!8+IiBUt0n7glV(=(lyirks?4M_k4>&zt@sulOwI?|MC>K9 zgCvLlV-0%c&cG66z0FuReoLq7aBO}j_`U((#YH{94C>BRfw!rL_LkoOzN1YO{_a|c zppSJ%$3SDsGBLovRI`nuhwCdaS{Og2YGoY_TCir9+3fXq*!FX1I^ohtrWKNxfLcR> zFNR!}9CIE(>+Ai9!oXyayNK4pzyUS7`9Ly`lE>1+a^_xKI92meKm!_xX$pdk!GRkz z@lg{~`v_6~0V3nR%-1B@8S$8fWAGa!R{TO}7TQpJx>2%&XJ`6d^`D=e!Q1QoZ-09+;``-@MyFL>O3ijUAz&5Ki(cpSxWKGfX`OEA0wuL> z6>#Z8M@hX;grHF2cf>^E>k8a$m?D^+D1%dNidn9%9^fe#diS!bDDklhxA_x4+27uE zEys&DKNp(QwJqo7K?}ARy-xYu5rzr|+#36#_07Q%%k9qnLHq4!sB-V*m?zjCBZ{yn zR&DrDNV0ZHlh@5Jkgc|ei&wtC;q3u5PYO`9GB7UsaZO~&$W;>y95^+r#`9~9N%DYm zY5y?Bn+5`AkDVKR&f6&YyJSbfe9;8$2W<~FzGf^9wCrI^|0+qFr((e!O{{G2F!Y`@ zvjA)iA3c>{mNRoOU)W^!b~-@+v|+o;w0SqZ50*2RAs0F069410WJmYd%~9+^@;>hZ z^^&5Rr;Y86(K^K5mb1UE>TESjQGH-^K3Z2;{zR7tgsqFe!~A{hP9uB@^rQPkejspO zRgz&0>%E(XN&rM=+7;?)9(;;nxN}ZL!3b}Y7}~Wcw!$7vElt&3y$I!)h3UD7qM==o zJXOh78ymWaSNt?P-sDEeH8mzdLmMJ0AUO^tV(cD#Q2QV+)7@d>-9{2PI1O>ZA2ogs zl-O};J@%+_YxB_{4UW)fI^2%+xE<(n{Yn)LLr|-ts+DWa`eti1YMO|cDEugUEB53| z3Vu-`;>Y(?Ne$#jlE@QDZ^RTPy+XE8sN9*WFat`FA*V?vsFI1z@$0ARL;df?=lLQ# zTV|#Hu(uNv8Ctl;8^~y=aT8fbRtRsbv1ylWnzUmlDa{p*uhI}!U;yLh$aUW}AwjT! zY})D-VMQR6m{yYrks&_c1&3t_@`K-zqlS|(krz=fg(nKQ%EZLHkDi7Ar?6eKg_}1 z(Y81R6w9h6L4rR$`nU6vzXq3J1Q|FC@W@-5tY?smM2`f)Q_Cd99Bc4@)FP=7%0%>C(yOZL_e9|GU&vn)t#I}L z{e9U$f+bBA-}21>Zwc@EF@|;#_t(i|?{N1MvNh*<1x1Gs!-ZA(eTkQ>rm>W*!Qc@D zqXcJROK>t)&<|!3WNSHYM5Y1beaE#V+GymiD!<#{5SdH00JgD)m<(QG)vElQ5mzuA zv`IuXlACoYTC&{$4`q~t!<)T^n9svm37)Jb+}DlZB(FbWM?Ee{?=%YTLxjDl4g6P zRxlJm2v-L^F|)M0qq@h9$M$mhQSzYyD__(`cR_x+TBpn8`axq4pJwYi%gT;^|I$5TG>p*TN@3Oce?(f@@Lv@ASsA}Y9G@ZC`-t=V~xO-^$n z4P}H-T7PcD52nv4x-RA}NcB6YYAZE;4%L3`*~r<1)8>tw*4n|iZ~3JJDuCBKP3$Xp2+lV%_fCAeC@Mv8R9b+WiPGmDg!5vvnpVj-se<>vKR!Cv zHqx(7pUQKA9kF?c?PudBD?VXy?OQfHIwhI)ca7_Ad><(uu-NA*`wTVlOtv?9maZ?4 z)Nk5adA+yC+s;^9!-_L~j7tN!LU%Bf!(_IXJV;V%%w>2A?{C0{GedE6ee0YIv;F;( zn;hP7)tm&&rg9mLms1FoMU0`;qZab>B@d*A6dU;vnofGcCIP~<55k8xfiRgOvCWRU zvn0jwM8yMA5X&Y5su;5vKqKw!138Q!#4rcSo%Gc@$6D{2TFj3Xj`zT$aOr0le2xoD!ur zMUv_o=|$#4YZ`Tu)j!Ki%NA~Z;#c-Myla#KF9o^JIa<4KD3&`tAc#(y3ER{$8*2-k z4{aYI>RnDG%%F%JxGZB+>n(3>kb)vHW^O_hdyHLC*2yh>!RC7bLHwNNnLIt<6^eY3 zRGUFLU!EWb;C-Rx{~}$l@+({hX7h12&h{+VFb(32wP)rM=`N-G=+rjIJVRVwzIyqJ zWHyw m*$B!I6@Mwt|>8$cZpI+zJJFE?4#aA)?S+GM6kfCuOovY6vmER=7qt`Hfh z$ZAMPal|-sTZ7y=^uIO8ofC47{#eSfYcV)rNJQt=IGO{(lsmJ1_3GvJ)&Bm7U?<8s z3ofl^1o1_+P8TSLq#Dm{DWBD2oKBh*HhGN9$3$PEkVH*}+y3Lw=)+rcpkhxzvOmay z)O2Z1D!qAS9;DBHzkuT-ecxlFc@Qdke!`rN;i(oLrwNp#l?ex`|!$z`Qf4#S}5)@()%n7)p9J4j}YL`*$UP@y9pk2uGe4FZ`4#dw@&K*S^4ppdsr z<2T?>Cn3&+2JFilinMJDXnyz~B1$>3MYA3XZ$T8^=;VgmrlG$!3Q^S1pF_9MTwZ84 zx2vT6{Z@gRa1-d0?tNwS9_u(FPrENppdu4Ev6>`!tKH$#YaA z2c9G~@?Wyg^(83l7xJ~+hjuOG9iGVf8W-eygJ)+msyT~rWFuQr1Y?GEoE>Y;b~S8H zqk_wQxB6f53yA&jG%R915=zKLvx=1Mqkqt{?Cf3eiS1kBe6eNCb}zY8+QoM5;ppvg z)DPd|*r*?{BHH7Gw8AST@Fs0iP>v4zpCrF-)EeU5s?|KHF#rxzn;*%WyF<5)ewa*v z3rjR1n#Z`bTrB8VjOeOQl4Y(hD^q0MX{Od@dj$syfvh%Hsx5uGF34>_&G^@g^SOI&YgD?eaSSZv`<{!WBJnYH4zf%x3a)X)#r zE^cIM2zTcXC8NvAts^`Bj@S-!Z=YhAxQQFAA=OrLnXmoV0LTnV-aHk$4x???fHGN` z1fvtd_j{3V|4lWEM!5fA_kA7$1ojLQGLY$tXByy9nLz`v<1g8RO!0*1#QcrvxS!419^ zUk3?Jw_bQUp11|TAd4lB%WHmxbn{LQA&0Nzh7J=c4miXYk}Jw zKP8=O$w|r^Kl0m(D%gJSgOt2oUxGf_pHNzL*ld8dEKe_o5zjUKH!dm4#u;B!I~2u{ zC55bssiM2NT;Hq|l+){~OVqV!U#8{s|BBnyiWBFEsAc%%zRxHQGcGJ?ma@5-Cw}sa zZqV^n`-Y>ufIF$fs(H?2iAsy#1CtT=MH%t^H@l7?h{Qol5l_b~%8AV}mKuuEyIu|P z2gF2;PQ^)w9-BPU!`5}f2Nyqf$QPMDbz&(LpBTlpv`)9?2BiIx-pE9Wax!8QxIt3^ z9r5(zeF@+=7trElgcT+t-k{Y1i-n5T=i(yX$PeEN1#874CI&`M$PpB~&OXVR%{^bq zd5w3+kHIhCOl1-@;SO_?JQaAZgH;iAN&8P7)c%YR(d7Y;lhMxtKG?p4V>dZw<2kY! zaA?WFB0!l`t|Q8yA@p_QP;?;E@IZ79V^kPAwj3OU4#SOvphu=~_%r`913RXab!*wJ z8{vv^;CxYIeo)J2xtLp(5rkK9y*tk7y`B`W2*s16+;{AnEI&LPeIFT@aFUesNh?>4 zp8(?Ndiw%-T^4AwUM?2ZG+p2d!5~xf`b`Sin5PviQa>rYf#y<9PBXZ9&*mO90B|X+ zeCpfJM;(sW zoyStmsr{x_od{+LW_#JkP5d`|LaeG$&`zRDPQok4&W2mG$0K_G%Monrq5} zsWKr$W$Y}oGEjjkKhkN2hZha9+TzD>kj@o&O7&S(PvWsF6{aS!dBn{lE0lSOoruMx zbV(EvI`Q;dgni|!-qT>?U>@T4N+7ynRyBI}3V@s@^3CnrrT z^m>STTR@qu6j$s1D(~oeoQ7fV{EDy#bcllBl@FmYdN46=CpJD`P}wqFp=(Fm!R~?o zPHZnppPtBq)I*XcF%SMnsquyb(4uIHy?iTM?c~v`hWp?P~9^QX=Fh~ z*`lnO(C8ntW&4IYiJ0AFyp*eGo0MVz_pJ}Opu0;F2(my5yU7y zuX*+1^iCia>!&i=1Y!Wc227oZ)1OzVa2c1qsuU3PsFYN%m`VY>(>(*^AIZ_nc{}*& z`P)_q=fl}NY}dpj9KJZJT||g$7lQ%Lfq(`}E3xTOu#Rf|uJv^Rsa9Hh7M#I@?__#IJWUBTvhm#4z;|{VV>DS{k zm7b*XDPD!$FyBq5&%0rsg>UBFFwb9vuf}SRw-Yu=^QakWirf&%cSkv{*3jCxA>zc1 zDD-Z6M79Ux1Nyz19uV{x-i3O_%&yTv1LPk<^@V<}T=m&JJe$wjV=4s*-?T@YDZf2> z+8WR3X=_aU(H?6!nvY+FIFVw=%ulqTK72HNd3;_(gt);B@f%2FX%eRrf%-NH-SDqY z@(^Jm=rtbc_pq_#i5Dv9V<%e>*ENNz`lz+FFn3eCov^b<52=?MSKb>MkzU;Vv#~ zTMiZCE%|vHCB+FrT;H2EVDuaS_l2*p!o&k#X21Uc0D&Bq#7tRN!bAZfiMhY>O?{ zdiM&fMZVDM$2}Zv)K2c$KKq3_bMhhEmXEQ<=#Mq{yWEl5jW5bP`y@SX$dt0SkiW3OR5N&0W}ONI^KbR>fuYZw?)%)hADuBrA-hDmwzG{9dW1q$m}*v;B#U*)CR{Dxfr82D-tO;;)7geaFil0bU7(17U@0aiX@abhP4Zne5wVzQv01h@5G#Dq(1_aTfLA_c3UcE1GYq# zm~9lXd@1v0^fRKO+|(ifLf+>li7sym@v@LYDn|sl+F&;j3P&dd)$$`v3C~vEgm;!- zz8&NC$*+=bg-R!C!82m4{k!j=JIwxx58%NiPpL2!F^w1SFvs+nP9OR|N3mk`azp8` z8Roz-F_E!F5MvX1sVMB6u9D8pA)Zo3c8Kvx;T1#O&=qGpruV1wOltc!0QV$DLAF zBT-gC;=>hkcgp!C+civ1lL&$rKta7y!`^_r6nXa559SKnwr%guJv5U>XdRfUN4Ra` z`p(T_zXXZa1zN|$EKwdA|7V0rU{sZE9TlJ8yGz%k3j|gg4B$#H)3ZM_3`XbeLt@&a z@y%A;oL)lg>gFi(61hI$>NZh%K|ivUxef_2x%_mYF#y#bq}GN(DKB!kL}EM*cMA!o zi*fFc(U<5}oZ0+AL2&*dAdi8KK*|$yKEU{O!CR{>7*8!WFiDHX+G7$rQVZ-0Giij> zU=}z4QV^X1=rmFhnm;~Hp1ECZKKHK-YQv29pkP1y9(thJW}v@a`3_J^0|XQU000O8 z_K@33ZN0uXe-{7%5Rd=>5&!@IYGrt3axYX@X>Me1cP?sSc46#XZFA!^5dKVm#nKOu z9%*_lFffz@(losW(x#K7Tnoc6j;%DNj+K#|z8vu1*qE>?LPaW zm9$dXda(vC;Cpc+6l}ux-jxSKag)HQ#uuG95o+xDVhxyVI1zBv8A3PoMXUwX@L|KW zwdCwpg%^_qYOM{}dAa=s{2;Ev7`on6A|FF`BGfe0I+QVl8YV)C(Jfpk4=I8=jFk`| z$KX#qbs_4INburYmDr%c*M#_iA0=Ckdv0<zbzmVW3VO9-St zpNcr~5)wHMBcY*|pdRZ3(_?+3j@(F8AiM|=F*Pq*;W|tva-M(^I#HodZ0bnlNAm!Y zWX(}H4O1b=j5)9|H1VBlQD?Mun93j=)3;##X7f=L>Pa1fkhqWL3BJ_yk_}A2NTDsM zK#M3MCZW)%bOB?XXiyN@2~ikxvFPiGoDwZE%E-y^utj zu}s6Q(;g7NqjtY_h>y*^PPa2WXRjS}hR4MDpx1{coHYBxPV2PW?8C`v|D-o)BZz(E zeB3!c=%b+aQTuq+ZMl}WvlGwNBA%~mmY9H6wD*M$- zpP#m8YBgSzwp*o$U~TI~I+ovraUicD)I8J^Iopg7VMOVN^1e`KAL+B;cVfiLm~)waR{@WX zj~TMX>GJ}t(G`V(H;M$*0x|aHQ3AI@Z!`?$7JnPF8gGunm}krcFpGA6;uHk%3SQp4 z+}^DgMYEt6SuwG^r<9}KezVJjM#|1ADZZfPiwNF9Pzw`qyWif=1bw#4^cBK0H-(u^#){61K`WuCyP}YtTKk{R2MHxY4A*AbsTvYx&d%369J3V zK2zb9htHnx3#|)AW`lAkcx3~%GIEkIi9~@x#(a<{N2->wChwl3@UP0jdC% zd*)#BTCia(Rsj2C@jPtKW{8y+arTky&--ohyt%Mw|yl5^S z0?;uWp(LyQRA#WZm6_?`_}#qq7TwHw>v0q@X$>{8ioJDm89KyK%N^2};&voGh5RN` zCH_328LJuJQUfwJMGH>P>7IDzY0cYl!-`ci={N|L@RR5kl!tE>HhD1yiS$LK_1To?)LBb6=>FthLZI$Mx`lK~$raKkIMuuF<@@95tQ0`TC{kf1iCnoP%B zAYxjrv+72(a=%i4R))VNt&UUziFav=5s8u!$nla!GC>=OAoZdbWC|?s8mDIXiF?ku zuHp@3QX`@&XZOVvReK73P(r`|10JaRK{P39U#p30R~x$KD=G@vlSb22l`c%#k==UGIa zPPkmjq!>k70w%9SfVdLISYd+sSm|WJXe7`}f*r6rn1%xuw1;wZ_6xJuJc`OEP|Nb; zJjyyq#l6sztN(S256`?MKm5Pdn^ZTIH#?6J}dTS&t49wzy7`R-k5F z+IlYAiO!glP@No=dTXwQ0v|ndDFTrE&g}KjfjkOBO^Ts5)Mgm19%VK;#i?bE&@kw_ zF^*-i`;MSSGD+kV(t`wFs#q-GE%>n24bBGwk6CIiUyxbsKN!0Eqqh?eyVbi1r`U6~AWK#)VQ3jUm9EBe zk{I?++iBW#Xjjj4r!i4^BU9!0-~+?3mR4>)%9X@6;6vUMeefr26vQg|}iT}g5%Xk3;c4&!h-pXT^r5N*F)L1?)l<&Hy0(dcsA+%6?_I5K6? zeI~dmXD3n#S4)2HTEeAqO;JsBwz}QA$eqHCUT{rV?zuX3jYjimk=5Os-Xn*LjhtsN z99-MS^-ho|(Yv)u5G6_wB@(@t6+IhPbU}0y-73*`5hc-kSuJV=ON3}qmkq18=o?G$ z8!dYJ5A0bSz0;OP0G&Eu7kRTC8B*U2*u)}t0is3msZuxW(af24#CMQFG25x5+`90#w6nKKjC2|mfS zhNW*?VN$@v2}u^y&6~ui?W(xEUw!ZS9TR1+bV)W2R~>pHj05wG9)!arLc&iUPHfOe zz*P3Y?8fT-jTs3us&o+*IZ`Wq=%_K=R_*Rsg{PgVtzDgFw+-LOd7_I8Z;dR|85}qM z%RK1|SodDXFsvB3NLacqp5`hB-^T>*Qpk~J&o!F2@H;HS| zDnOAsFY)S&3aH#la=2i>upEAY(JI=Y z&kGB9x2j0v%#u=}x?(i%qMIN)06Ff4o%(*e5=Ur0m`qlB1zILrPgag6USYN5B$tBmUaY#=I-y z9hB)-yp4FSJC5(|`1Y&K2??PO+9>4Z)3fG~sG#h*jO)guA%^Z5<_+-o?L)UM;DFy; z**eGd54sVcV*B`TnNFXT>-AW{*NA$uBLGK)7b7|;GRz_UZe2Gd5>fS&W6_X#<#^Av ze~KN}yscNmj#4WM{IL>rv46V`r7wl`6P1RKW?9uz!nxX~9+QrGm z)@eQ{LI2O;o8)J&9rTe)906@J(|eC8yxx-y?}uX#bICVZ(M0nQ$xh3e!7`YD=v@Mv zHK*D|pu?A`7lU~|xi34Q4LuG3#Ky1nYR?~9fqS2GSeW>HNWD*gy|G&K6my>wtqIig z&NaV$_|{PfUC1PUoKwRrNcO?(-qc#=Lp}`Uu|v%0 z%);Y$zuvw!(m1!&I@e|p;@x;I-`T1$IC0YN!2);L49byiSbQRs-;n-^b3+Csm>+W9 zKYHfxN80_Zy!N8rva{n76(d#zJPSTe(&m)R$N_v`q$l0GhVr{Et%sULcgS7(zDMVx z16EByEpRC%f6bnd_D~niDAW`?^SYAy>FmkR3U(_l zDcqSN5t>iF%4b}})&`ASr6Er!c2WD#PL#*#`M_SO#+7-{%mk}6RpjV_@Ta(H03|_B z1gy_7fEC|-tFrK+!Svu ze8$O#cNr-#e2*Q06JD=s?t&*24B7htBL+D!76H@a3e6bBbvJokqjIr=^(OW@WWVoZ z@}~yrRBd0KL^-$Kr^d>pbU`nl925cP#);-rH&AURFKdAvnwr>Wg{cuSA{(}2^g-Dyiei7(oSOYs{XhF(IryGfj}8=$LA(OsM;in zPFi8E!FDai%8y27`@y01;65g1aSGQeNm?SCHEv-pcl!9v!FL9tx1{|`$Gg5_QIwfJO5C5)sjxBvn4nn$*|XXFYb#t$d~i2x`;IP1vkp*uDk2!-inW#deFp( z^+B`tFo6EMjAP~@HWr5uK2l-@q+3U>2Kj}?gxl2uhbl-VlvA;z1VdbiAk?aWDviywp9B z$Ov#qt zIc|^G?ujwoa0GmCZUCFZ@s!u4r`V z*gRrC|BWJcWP2Propr#n`>`YQM!D}duFV^^x{qn0D4hm*NNCn4^y-P{#%IJFYWh?G zg)X%yL_G-#PH~HuCgICzsLfQ2SM0vF=AoL}7(EQNT*4ezU-N2+*5VJgB}@X|6sKq?ZqiB#N51Sq7WQWliutbs^P zm>t`(=$m$X?mZXtv;wScipWkg96Ppyp6_?dUz+Fa13T|-NhhtrDr`Esgi5G{hu(%Y zi_(;>X0|=mZ~2yKLvLA?O-jKcB@mNgl|=s)%c;f;e0UMJ1;$#BkqxQFOFcC4n3_rt zsgBgqSK=Iv_oT#zg7Q>OYBF>d8kCZ zh3{HIX*HPY%t;6+EA5Gdy~q@8$oqBfl2gaxxQ@9)$MDC(*}f-Zz+35kO>xqCqBn&X zjf%nc9>w4qA1dZbAu_ca3!?ia10@^!*Mk~!%bH5*RG2~bSFJz%3`j>MJVC8L2f-UG z$gwB>EHsmx*n8H$KT1H+pK#q@g)R^_SzuGIwG;qE?sy1;ie=E9p+LM=nKh@l#^>xSmgS)ZQmO{-+Wl-|5@=*H zCvQ04a6hYaP&MyBNC{xOJk*YflguSkd3@K42%X#}YM>UGLZSVpaz)C&S7{$-&p0`F2m$GC= zKsSVAl$F$M&`WZ+t>0g>AQ>Fr+j$$35MT;@X0{u$l4QVi`nrc^{5z@roXn_aF8Y~s ze>&lhXA+*LD2P}c(bbj{z(AuoW6V6%L2XC#)w1l%WVGcHW2kj-Tl?|q%DYyq-~ItF z+ev<6X%za(b_CtcZphwwnP3(6eQ%e2H@O^UL)#v-|I86k*0ORVD5#yapga)ZID97V z%-6pu*SW+{13jXcZ2DrgnrX^1Eo<&!5SiL>R1(m?!S+aK@<$HMS1NM9g2H|5s5X2eNA#U_XRhdH7ft&&ml+nX!ZpF-=vF{3U+VB!=NV$pgq#vrmnD7# z=w%%iS`iq1R{pvtLs;POjfN6|qjQsSy7Y$#Vl#S2HIQoWrfu<&+)x)xI@;ky{@q`@ z3Y`@P6_K_R`jtTiKmhy~t?l*0D;i|(@+~KhTkxw#&>x?--}k2l=Y4Jk;iT-ot05Uv zJ-vox5>^R{hywE{_>Ujrvdox>BAq6Ii@e@UtbOvH|EAsjU!Lgi@bA<=*mr+bP$sP`9K^?C#tWCAer3Bqfge8mMBVO>_1{AOv?cx&x+D9y&>tqn|4)OM--read-url [URL] ([chapter number]): convert on the fly and read the * story, without saving it

  • *
  • --list ([type]): list the stories present in the library
  • - *
  • --set-reader [reader type]: set the reader type to CLI or LOCAL for - * this command
  • + *
  • --set-reader [reader type]: set the reader type to CLI, TUI or LOCAL + * for this command
  • *
  • --version: get the version of the program
  • * * @@ -157,6 +157,7 @@ public class Main { break; case SET_READER: exitCode = setReaderType(args[i]); + action = MainAction.START; break; case START: exitCode = 255; // not supposed to be selected by user @@ -246,8 +247,7 @@ public class Main { updates.ok(); // we consider it read break; case START: - UIUtils.setLookAndFeel(); - BasicReader.setDefaultReaderType(ReaderType.LOCAL); + //BasicReader.setDefaultReaderType(ReaderType.LOCAL); BasicReader.getReader().start(null); break; } diff --git a/src/be/nikiroo/fanfix/bundles/Config.java b/src/be/nikiroo/fanfix/bundles/Config.java index a38b9e2..63e6465 100644 --- a/src/be/nikiroo/fanfix/bundles/Config.java +++ b/src/be/nikiroo/fanfix/bundles/Config.java @@ -12,8 +12,8 @@ import be.nikiroo.utils.resources.Meta.Format; public enum Config { @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)") LANG, // - @Meta(description = "reader type (CLI = simple output to console, LOCAL = use local system file handler)", format = Format.FIXED_LIST, list = { - "CLI", "LOCAL" }, info = "Select the default reader to use to read stories") + @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 = { + "CLI", "GUI", "TUI" }, info = "Select the default reader to use to read stories") READER_TYPE, // @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)") CACHE_DIR, // diff --git a/src/be/nikiroo/fanfix/bundles/config.properties b/src/be/nikiroo/fanfix/bundles/config.properties index 6151843..061b0fb 100644 --- a/src/be/nikiroo/fanfix/bundles/config.properties +++ b/src/be/nikiroo/fanfix/bundles/config.properties @@ -5,9 +5,9 @@ # language (example: en-GB, fr-BE...) or nothing for default system language # (FORMAT: LOCALE) Force the language (can be overwritten again with the env variable $LANG) LANG = -# reader type (CLI = simple output to console, LOCAL = use local system file handler) +# reader type (CLI = simple output to console, TUI = Text User Interface with menus and windows, GUI = a GUI with locally stored files) # (FORMAT: FIXED_LIST) Select the default reader to use to read stories -# ALLOWED VALUES: "CLI" "LOCAL" +# ALLOWED VALUES: "CLI" "GUI" "TUI" READER_TYPE = # absolute path, $HOME variable supported, / is always accepted as dir separator # (FORMAT: DIRECTORY) The directory where to store temporary files, defaults to directory 'tmp' in the conig directory (usually $HOME/.fanfix) diff --git a/src/be/nikiroo/fanfix/bundles/resources.properties b/src/be/nikiroo/fanfix/bundles/resources.properties index f664eb4..a63fbd3 100644 --- a/src/be/nikiroo/fanfix/bundles/resources.properties +++ b/src/be/nikiroo/fanfix/bundles/resources.properties @@ -16,7 +16,7 @@ HELP_SYNTAX = Valid options:\n\ \t--read [id] ([chapter number]): read the given story from the library\n\ \t--read-url [URL] ([chapter number]): convert on the fly and read the story, without saving it\n\ \t--list: list the stories present in the library\n\ -\t--set-reader [reader type]: set the reader type to CLI or LOCAL for this command\n\ +\t--set-reader [reader type]: set the reader type to CLI, TUI or GUI for this command\n\ \t--help: this help message\n\ \t--version: return the version of the program\n\ \n\ diff --git a/src/be/nikiroo/fanfix/reader/BasicReader.java b/src/be/nikiroo/fanfix/reader/BasicReader.java index ae1c8d4..74bd5d4 100644 --- a/src/be/nikiroo/fanfix/reader/BasicReader.java +++ b/src/be/nikiroo/fanfix/reader/BasicReader.java @@ -1,5 +1,6 @@ package be.nikiroo.fanfix.reader; +import java.awt.Desktop; import java.io.File; import java.io.IOException; import java.net.MalformedURLException; @@ -8,9 +9,12 @@ import java.net.URL; import be.nikiroo.fanfix.Instance; import be.nikiroo.fanfix.Library; import be.nikiroo.fanfix.bundles.Config; +import be.nikiroo.fanfix.bundles.UiConfig; +import be.nikiroo.fanfix.data.MetaData; import be.nikiroo.fanfix.data.Story; import be.nikiroo.fanfix.supported.BasicSupport; import be.nikiroo.utils.Progress; +import be.nikiroo.utils.ui.UIUtils; /** * The class that handles the different {@link Story} readers you can use. @@ -24,10 +28,12 @@ public abstract class BasicReader { /** Simple reader that outputs everything on the console */ CLI, /** Reader that starts local programs to handle the stories */ - LOCAL + GUI, + /** A text (UTF-8) reader with menu and text windows */ + TUI, } - private static ReaderType defaultType = ReaderType.CLI; + private static ReaderType defaultType = ReaderType.GUI; private Story story; private ReaderType type; @@ -162,10 +168,13 @@ public abstract class BasicReader { try { if (defaultType != null) { switch (defaultType) { - case LOCAL: - return new LocalReader().setType(ReaderType.LOCAL); + case GUI: + UIUtils.setLookAndFeel(); + return new LocalReader().setType(ReaderType.GUI); case CLI: return new CliReader().setType(ReaderType.CLI); + case TUI: + return new TuiReader().setType(ReaderType.TUI); } } } catch (IOException e) { @@ -224,4 +233,41 @@ public abstract class BasicReader { return source; } + + // open with external player the related file + public static void open(String luid) throws IOException { + MetaData meta = Instance.getLibrary().getInfo(luid); + File target = Instance.getLibrary().getFile(luid); + + open(meta, target); + } + + // open with external player the related file + protected static void open(MetaData meta, File target) throws IOException { + String program = null; + if (meta.isImageDocument()) { + program = Instance.getUiConfig().getString( + UiConfig.IMAGES_DOCUMENT_READER); + } else { + program = Instance.getUiConfig().getString( + UiConfig.NON_IMAGES_DOCUMENT_READER); + } + + if (program != null && program.trim().isEmpty()) { + program = null; + } + + if (program == null) { + try { + Desktop.getDesktop().browse(target.toURI()); + } catch (UnsupportedOperationException e) { + Runtime.getRuntime().exec( + new String[] { "xdg-open", target.getAbsolutePath() }); + + } + } else { + Runtime.getRuntime().exec( + new String[] { program, target.getAbsolutePath() }); + } + } } diff --git a/src/be/nikiroo/fanfix/reader/LocalReader.java b/src/be/nikiroo/fanfix/reader/LocalReader.java index a3fdcab..2b92e72 100644 --- a/src/be/nikiroo/fanfix/reader/LocalReader.java +++ b/src/be/nikiroo/fanfix/reader/LocalReader.java @@ -16,7 +16,6 @@ import be.nikiroo.fanfix.Instance; import be.nikiroo.fanfix.Library; import be.nikiroo.fanfix.VersionCheck; import be.nikiroo.fanfix.bundles.UiConfig; -import be.nikiroo.fanfix.data.MetaData; import be.nikiroo.fanfix.data.Story; import be.nikiroo.fanfix.output.BasicOutput.OutputType; import be.nikiroo.utils.Progress; @@ -111,29 +110,6 @@ class LocalReader extends BasicReader { } } - /** - * Get the target file related to this {@link Story}. - * - * @param luid - * the LUID of the {@link Story} - * @param pg - * the optional progress reporter - * - * @return the target file - * - * @throws IOException - * in case of I/O error - */ - public File getTarget(String luid, Progress pg) throws IOException { - File file = lib.getFile(luid); - if (file == null) { - imprt(luid, pg); - file = lib.getFile(luid); - } - - return file; - } - /** * Check if the {@link Story} denoted by this Library UID is present in the * {@link LocalReader} cache. @@ -224,35 +200,13 @@ class LocalReader extends BasicReader { // open the given book void open(String luid, Progress pg) throws IOException { - MetaData meta = Instance.getLibrary().getInfo(luid); - File target = getTarget(luid, pg); - - String program = null; - if (meta.isImageDocument()) { - program = Instance.getUiConfig().getString( - UiConfig.IMAGES_DOCUMENT_READER); - } else { - program = Instance.getUiConfig().getString( - UiConfig.NON_IMAGES_DOCUMENT_READER); - } - - if (program != null && program.trim().isEmpty()) { - program = null; + File file = lib.getFile(luid); + if (file == null) { + imprt(luid, pg); + file = lib.getFile(luid); } - if (program == null) { - try { - Desktop.getDesktop().browse(target.toURI()); - } catch (UnsupportedOperationException e) { - Runtime.getRuntime().exec( - new String[] { "xdg-open", target.getAbsolutePath() }); - - } - } else { - Runtime.getRuntime().exec( - new String[] { program, target.getAbsolutePath() }); - - } + open(Instance.getLibrary().getInfo(luid), file); } void changeType(String luid, String newType) { diff --git a/src/be/nikiroo/fanfix/reader/TuiReader.java b/src/be/nikiroo/fanfix/reader/TuiReader.java new file mode 100644 index 0000000..d18436f --- /dev/null +++ b/src/be/nikiroo/fanfix/reader/TuiReader.java @@ -0,0 +1,35 @@ +package be.nikiroo.fanfix.reader; + +import java.io.IOException; +import java.util.List; + +import be.nikiroo.fanfix.Instance; +import be.nikiroo.fanfix.data.MetaData; + +class TuiReader extends BasicReader { + @Override + public void read() throws IOException { + if (getStory() == null) { + throw new IOException("No story to read"); + } + + open(getStory().getMeta().getLuid()); + } + + @Override + public void read(int chapter) throws IOException { + // TODO: show a special page? + read(); + } + + @Override + public void start(String type) { + List stories = Instance.getLibrary().getListByType(type); + try { + TuiReaderApplication app = new TuiReaderApplication(stories, this); + new Thread(app).start(); + } catch (Exception e) { + Instance.syserr(e); + } + } +} diff --git a/src/be/nikiroo/fanfix/reader/TuiReaderApplication.java b/src/be/nikiroo/fanfix/reader/TuiReaderApplication.java new file mode 100644 index 0000000..3e9d1d7 --- /dev/null +++ b/src/be/nikiroo/fanfix/reader/TuiReaderApplication.java @@ -0,0 +1,75 @@ +package be.nikiroo.fanfix.reader; + +import java.io.IOException; +import java.util.List; + +import jexer.TApplication; +import jexer.TMessageBox; +import be.nikiroo.fanfix.Instance; +import be.nikiroo.fanfix.data.MetaData; + +public class TuiReaderApplication extends TApplication { + private BasicReader reader; + + private static BackendType guessBackendType() { + // Swing is the default backend on Windows unless explicitly + // overridden by jexer.Swing. + TApplication.BackendType backendType = TApplication.BackendType.XTERM; + if (System.getProperty("os.name").startsWith("Windows")) { + backendType = TApplication.BackendType.SWING; + } + if (System.getProperty("os.name").startsWith("Mac")) { + backendType = TApplication.BackendType.SWING; + } + if (System.getProperty("jexer.Swing") != null) { + if (System.getProperty("jexer.Swing", "false").equals("true")) { + backendType = TApplication.BackendType.SWING; + } else { + backendType = TApplication.BackendType.XTERM; + } + } + return backendType; + } + + public TuiReaderApplication(List stories, BasicReader reader) + throws Exception { + this(stories, reader, guessBackendType()); + } + + public TuiReaderApplication(List stories, BasicReader reader, + TApplication.BackendType backend) throws Exception { + super(backend); + + this.reader = reader; + + // Add the menus + addFileMenu(); + addEditMenu(); + addWindowMenu(); + addHelpMenu(); + + getBackend().setTitle("Testy"); + + new TuiReaderMainWindow(this, stories); + } + + public void open(MetaData meta) { + // TODO: open in editor + external option + if (true) { + if (!meta.isImageDocument()) { + new TuiReaderStoryWindow(this, meta); + } else { + messageBox("Error when trying to open the story", + "Images document not yet supported.", + TMessageBox.Type.OK); + } + return; + } + try { + reader.open(meta.getLuid()); + } catch (IOException e) { + messageBox("Error when trying to open the story", e.getMessage(), + TMessageBox.Type.OK); + } + } +} diff --git a/src/be/nikiroo/fanfix/reader/TuiReaderMainWindow.java b/src/be/nikiroo/fanfix/reader/TuiReaderMainWindow.java new file mode 100644 index 0000000..1de9488 --- /dev/null +++ b/src/be/nikiroo/fanfix/reader/TuiReaderMainWindow.java @@ -0,0 +1,91 @@ +package be.nikiroo.fanfix.reader; + +import java.util.ArrayList; +import java.util.List; + +import jexer.TAction; +import jexer.TList; +import jexer.TRadioGroup; +import jexer.TTreeItem; +import jexer.TTreeView; +import jexer.TWindow; +import be.nikiroo.fanfix.data.MetaData; + +public class TuiReaderMainWindow extends TWindow { + private TList list; + private List listKeys; + private List listItems; + private TuiReaderApplication reader; + + /** + * Constructor. + * + * @param parent + * the main application + * @param flags + * bitmask of MODAL, CENTERED, or RESIZABLE + */ + public TuiReaderMainWindow(TuiReaderApplication reader, + List stories) { + // Construct a demo window. X and Y don't matter because it will be + // centered on screen. + super(reader, "Demo Window", 0, 0, 60, 18, CENTERED | RESIZABLE + | UNCLOSABLE); + + this.reader = reader; + + maximize(); + + listKeys = new ArrayList(); + listItems = new ArrayList(); + + if (stories != null) { + for (MetaData meta : stories) { + listKeys.add(meta); + listItems.add(desc(meta)); + } + } + + list = addList(listItems, 0, 0, getWidth(), getHeight(), new TAction() { + @Override + public void DO() { + if (list.getSelectedIndex() >= 0) { + enterOnStory(listKeys.get(list.getSelectedIndex())); + } + } + }); + + if (false) { + addLabel("Label (1,1)", 1, 1); + addButton("&Button (35,1)", 35, 1, new TAction() { + public void DO() { + } + }); + addCheckbox(1, 2, "Checky (1,2)", false); + addProgressBar(1, 3, 30, 42); + TRadioGroup groupy = addRadioGroup(1, 4, "Radio groupy"); + groupy.addRadioButton("Fanfan"); + groupy.addRadioButton("Tulipe"); + addField(1, 10, 20, false, "text not fixed."); + addField(1, 11, 20, true, "text fixed."); + addText("20x4 Text in (12,20)", 1, 12, 20, 4); + + TTreeView tree = addTreeView(30, 5, 20, 5); + TTreeItem root = new TTreeItem(tree, "expended root", true); + tree.setSelected(root); // needed to allow arrow navigation without + // mouse-clicking before + + root.addChild("child"); + root.addChild("child 2").addChild("sub child"); + + } + } + + private void enterOnStory(MetaData meta) { + reader.open(meta); + } + + private String desc(MetaData meta) { + return String.format("%5s: %s", meta.getLuid(), meta.getTitle()); + } +} diff --git a/src/be/nikiroo/fanfix/reader/TuiReaderStoryWindow.java b/src/be/nikiroo/fanfix/reader/TuiReaderStoryWindow.java new file mode 100644 index 0000000..47a644e --- /dev/null +++ b/src/be/nikiroo/fanfix/reader/TuiReaderStoryWindow.java @@ -0,0 +1,60 @@ +package be.nikiroo.fanfix.reader; + +import jexer.TApplication; +import jexer.TText; +import jexer.TWindow; +import jexer.event.TResizeEvent; +import be.nikiroo.fanfix.Instance; +import be.nikiroo.fanfix.data.Chapter; +import be.nikiroo.fanfix.data.MetaData; +import be.nikiroo.fanfix.data.Paragraph; +import be.nikiroo.fanfix.data.Story; + +public class TuiReaderStoryWindow extends TWindow { + private MetaData meta; + private Story story; + private TText textField; + + public TuiReaderStoryWindow(TApplication app, MetaData meta) { + super(app, desc(meta), 0, 0, 60, 18, CENTERED | RESIZABLE); + this.meta = meta; + + // /TODO: status bar with info, buttons to change chapter << < Chapter 0 + // : xxx.. > >> (max size for name = getWith() - X) + + // TODO: show all meta info before + + Chapter resume = getStory().getMeta().getResume(); + StringBuilder text = new StringBuilder(); + if (resume != null) { + // TODO: why does \n not work but \n\n do? bug in jexer? + text.append("Resume:\n\n "); // -> to status bar + for (Paragraph para : resume) { + text.append(para.getContent()).append("\n\n "); + } + } + textField = addText(text.toString(), 0, 0, getWidth(), getHeight()); + } + + @Override + public void onResize(TResizeEvent resize) { + super.onResize(resize); + + // Resize the text field + textField.setWidth(resize.getWidth()); + textField.setHeight(resize.getHeight()); + textField.reflow(); + } + + private Story getStory() { + if (story == null) { + // TODO: progress bar + story = Instance.getLibrary().getStory(meta.getLuid(), null); + } + return story; + } + + private static String desc(MetaData meta) { + return String.format("%s: %s", meta.getLuid(), meta.getTitle()); + } +} -- 2.27.0 From 7d04a702b88445f1b1cb7633879348a5dcdffbfa Mon Sep 17 00:00:00 2001 From: Niki Roo Date: Tue, 27 Jun 2017 18:31:20 +0200 Subject: [PATCH 11/16] Fix configure script for Jexer --- configure.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.sh b/configure.sh index 42eed0d..42f8123 100755 --- a/configure.sh +++ b/configure.sh @@ -48,8 +48,8 @@ echo "TEST = be/nikiroo/fanfix/test/Test" >> Makefile echo "TEST_PARAMS = $cols $ok $ko" >> Makefile echo "NAME = fanfix" >> Makefile echo "PREFIX = $PREFIX" >> Makefile -echo "JAR_FLAGS += -C bin/ org -C bin/ be -C bin/ VERSION" >> Makefile -#echo "SJAR_FLAGS += -C src/ org -C src/ be -C ./ LICENSE -C ./ README.md -C ./ VERSION" >> Makefile +echo "JAR_FLAGS += -C bin/ org -C bin/ jexer -C bin/ be -C bin/ VERSION" >> Makefile +#echo "SJAR_FLAGS += -C src/ org -C src/ jexer -C src/ be -C ./ LICENSE -C ./ README.md -C ./ VERSION" >> Makefile cat Makefile.base >> Makefile -- 2.27.0 From 252407764a38e555064574d66e2321df034e6df3 Mon Sep 17 00:00:00 2001 From: Niki Roo Date: Tue, 27 Jun 2017 18:44:23 +0200 Subject: [PATCH 12/16] Add Jexer license and readme files --- libs/jexer-0.0.4_LICENSE.txt | 22 ++++ libs/jexer-0.0.4_README.md | 220 +++++++++++++++++++++++++++++++++++ 2 files changed, 242 insertions(+) create mode 100644 libs/jexer-0.0.4_LICENSE.txt create mode 100644 libs/jexer-0.0.4_README.md diff --git a/libs/jexer-0.0.4_LICENSE.txt b/libs/jexer-0.0.4_LICENSE.txt new file mode 100644 index 0000000..09bbfe0 --- /dev/null +++ b/libs/jexer-0.0.4_LICENSE.txt @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2016 Kevin Lamonte + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/libs/jexer-0.0.4_README.md b/libs/jexer-0.0.4_README.md new file mode 100644 index 0000000..7cfe9b4 --- /dev/null +++ b/libs/jexer-0.0.4_README.md @@ -0,0 +1,220 @@ +Jexer - Java Text User Interface library +======================================== + +This library implements a text-based windowing system reminiscient of +Borland's [Turbo Vision](http://en.wikipedia.org/wiki/Turbo_Vision) +system. (For those wishing to use the actual C++ Turbo Vision +library, see [Sergio Sigala's C++ version based on the public domain +sources released by Borland.](http://tvision.sourceforge.net/) ) + +Jexer currently supports three backends: + +* System.in/out to a command-line ECMA-48 / ANSI X3.64 type terminal + (tested on Linux + xterm). I/O is handled through terminal escape + sequences generated by the library itself: ncurses is not required + or linked to. xterm mouse tracking using UTF8 and SGR coordinates + are supported. For the demo application, this is the default + backend on non-Windows/non-Mac platforms. + +* The same command-line ECMA-48 / ANSI X3.64 type terminal as above, + but to any general InputStream/OutputStream or Reader/Writer. See + the file jexer.demos.Demo2 for an example of running the demo over a + TCP socket. jexer.demos.Demo3 demonstrates how one might use a + character encoding than the default UTF-8. + +* Java Swing UI. This backend can be selected by setting + jexer.Swing=true. The default window size for Swing is 80x25, which + is set in jexer.session.SwingSession. For the demo application, + this is the default backend on Windows and Mac platforms. + +Additional backends can be created by subclassing +jexer.backend.Backend and passing it into the TApplication +constructor. + +The Jexer homepage, which includes additional information and binary +release downloads, is at: https://jexer.sourceforge.io . The Jexer +source code is hosted at: https://github.com/klamonte/jexer . + + + +License +------- + +This project is licensed under the MIT License. See the file LICENSE +for the full license text. + + + +Acknowledgements +---------------- + +Jexer makes use of the Terminus TrueType font [made available +here](http://files.ax86.net/terminus-ttf/) . + + + +Usage +----- + +Simply subclass TApplication and then run it in a new thread: + +```Java +import jexer.*; + +class MyApplication extends TApplication { + + public MyApplication() throws Exception { + super(BackendType.SWING); // Could also use BackendType.XTERM + + // Create standard menus for File and Window + addFileMenu(); + addWindowMenu(); + + // Add a custom window, see below for its code. + addWindow(new MyWindow(this)); + } + + public static void main(String [] args) { + try { + MyApplication app = new MyApplication(); + (new Thread(app)).start(); + } catch (Throwable t) { + t.printStackTrace(); + } + } +} +``` + +Similarly, subclass TWindow and add some widgets: + +```Java +class MyWindow extends TWindow { + + public MyWindow(TApplication application) { + // See TWindow's API for several constructors. This one uses the + // application, title, width, and height. Note that the window width + // and height include the borders. The widgets inside the window + // will see (0, 0) as the top-left corner inside the borders, + // i.e. what the window would see as (1, 1). + super(application, "My Window", 30, 20); + + // See TWidget's API for convenience methods to add various kinds of + // widgets. Note that ANY widget can be a container for other + // widgets: TRadioGroup for example has TRadioButtons as child + // widgets. + + // We will add a basic label, text entry field, and button. + addLabel("This is a label", 5, 3); + addField(5, 5, 20, false, "enter text here"); + // For the button, we will pop up a message box if the user presses + // it. + addButton("Press &Me!", 5, 8, new TAction() { + public void DO() { + MyWindow.this.messageBox("Box Title", "You pressed me, yay!"); + } + } ); + } +} +``` + +Put these into a file, compile it with jexer.jar in the classpath, run +it and you'll see an application like this: + +![The Example Code Above](/screenshots/readme_application.png?raw=true "The application in the text of README.md") + +See the files in jexer.demos for many more detailed examples showing +all of the existing UI controls. The demo can be run in three +different ways: + + * 'java -jar jexer.jar' . This will use System.in/out with + xterm-like sequences on non-Windows platforms. On Windows it will + use a Swing JFrame. + + * 'java -Djexer.Swing=true -jar jexer.jar' . This will always use + Swing on any platform. + + * 'java -cp jexer.jar jexer.demos.Demo2 PORT' (where PORT is a + number to run the TCP daemon on). This will use the telnet + protocol to establish an 8-bit clean channel and be aware of + screen size changes. + + + +More Screenshots +---------------- + +![Several Windows Open Including A Terminal](/screenshots/screenshot1.png?raw=true "Several Windows Open Including A Terminal") + +![Yo Dawg...](/screenshots/yodawg.png?raw=true "Yo Dawg, I heard you like text windowing systems, so I ran a text windowing system inside your text windowing system so you can have a terminal in your terminal.") + + + +System Properties +----------------- + +The following properties control features of Jexer: + + jexer.Swing + ----------- + + Used only by jexer.demos.Demo1. If true, use the Swing interface + for the demo application. Default: true on Windows platforms + (os.name starts with "Windows"), false on non-Windows platforms. + + jexer.Swing.cursorStyle + ----------------------- + + Used by jexer.io.SwingScreen. Selects the cursor style to draw. + Valid values are: underline, block, outline. Default: underline. + + + +Known Issues / Arbitrary Decisions +---------------------------------- + +Some arbitrary design decisions had to be made when either the +obviously expected behavior did not happen or when a specification was +ambiguous. This section describes such issues. + + - See jexer.tterminal.ECMA48 for more specifics of terminal + emulation limitations. + + - TTerminalWindow uses cmd.exe on Windows. Output will not be seen + until enter is pressed, due to cmd.exe's use of line-oriented + input (see the ENABLE_LINE_INPUT flag for GetConsoleMode() and + SetConsoleMode()). + + - TTerminalWindow launches 'script -fqe /dev/null' or 'script -q -F + /dev/null' on non-Windows platforms. This is a workaround for the + C library behavior of checking for a tty: script launches $SHELL + in a pseudo-tty. This works on Linux and Mac but might not on + other Posix-y platforms. + + - Closing a TTerminalWindow without exiting the process inside it + may result in a zombie 'script' process. + + - Java's InputStreamReader as used by the ECMA48 backend requires a + valid UTF-8 stream. The default X10 encoding for mouse + coordinates outside (160,94) can corrupt that stream, at best + putting garbage keyboard events in the input queue but at worst + causing the backend reader thread to throw an Exception and exit + and make the entire UI unusable. Mouse support therefore requires + a terminal that can deliver either UTF-8 coordinates (1005 mode) + or SGR coordinates (1006 mode). Most modern terminals can do + this. + + - jexer.session.TTYSession calls 'stty size' once every second to + check the current window size, performing the same function as + ioctl(TIOCGWINSZ) but without requiring a native library. + + - jexer.io.ECMA48Terminal calls 'stty' to perform the equivalent of + cfmakeraw() when using System.in/out. System.out is also + (blindly!) put in 'stty sane cooked' mode when exiting. + + + +Roadmap +------- + +Many tasks remain before calling this version 1.0. See docs/TODO.md +for the complete list of tasks. -- 2.27.0 From 396e924c2cf7e7a6fe41e95a6395c9f9faf401f1 Mon Sep 17 00:00:00 2001 From: Niki Roo Date: Wed, 28 Jun 2017 13:27:19 +0200 Subject: [PATCH 13/16] More work on TUI (buttons in the viewer window) --- .../fanfix/reader/TuiReaderApplication.java | 2 +- .../fanfix/reader/TuiReaderMainWindow.java | 13 +++---- .../fanfix/reader/TuiReaderStoryWindow.java | 39 ++++++++++++++----- 3 files changed, 36 insertions(+), 18 deletions(-) diff --git a/src/be/nikiroo/fanfix/reader/TuiReaderApplication.java b/src/be/nikiroo/fanfix/reader/TuiReaderApplication.java index 3e9d1d7..94ecfd5 100644 --- a/src/be/nikiroo/fanfix/reader/TuiReaderApplication.java +++ b/src/be/nikiroo/fanfix/reader/TuiReaderApplication.java @@ -48,7 +48,7 @@ public class TuiReaderApplication extends TApplication { addWindowMenu(); addHelpMenu(); - getBackend().setTitle("Testy"); + getBackend().setTitle("Fanfix"); new TuiReaderMainWindow(this, stories); } diff --git a/src/be/nikiroo/fanfix/reader/TuiReaderMainWindow.java b/src/be/nikiroo/fanfix/reader/TuiReaderMainWindow.java index 1de9488..5507266 100644 --- a/src/be/nikiroo/fanfix/reader/TuiReaderMainWindow.java +++ b/src/be/nikiroo/fanfix/reader/TuiReaderMainWindow.java @@ -3,12 +3,7 @@ package be.nikiroo.fanfix.reader; import java.util.ArrayList; import java.util.List; -import jexer.TAction; -import jexer.TList; -import jexer.TRadioGroup; -import jexer.TTreeItem; -import jexer.TTreeView; -import jexer.TWindow; +import jexer.*; import be.nikiroo.fanfix.data.MetaData; public class TuiReaderMainWindow extends TWindow { @@ -29,7 +24,7 @@ public class TuiReaderMainWindow extends TWindow { List stories) { // Construct a demo window. X and Y don't matter because it will be // centered on screen. - super(reader, "Demo Window", 0, 0, 60, 18, CENTERED | RESIZABLE + super(reader, "Library", 0, 0, 60, 18, CENTERED | RESIZABLE | UNCLOSABLE); this.reader = reader; @@ -54,6 +49,10 @@ public class TuiReaderMainWindow extends TWindow { } } }); + + // TODO: add the current "type" or filter + statusBar = newStatusBar("Library"); + statusBar.addShortcutKeypress(TKeypress.kbF10, TCommand.cmExit, "Exit"); if (false) { addLabel("Label (1,1)", 1, 1); diff --git a/src/be/nikiroo/fanfix/reader/TuiReaderStoryWindow.java b/src/be/nikiroo/fanfix/reader/TuiReaderStoryWindow.java index 47a644e..9572566 100644 --- a/src/be/nikiroo/fanfix/reader/TuiReaderStoryWindow.java +++ b/src/be/nikiroo/fanfix/reader/TuiReaderStoryWindow.java @@ -1,8 +1,6 @@ package be.nikiroo.fanfix.reader; -import jexer.TApplication; -import jexer.TText; -import jexer.TWindow; +import jexer.*; import jexer.event.TResizeEvent; import be.nikiroo.fanfix.Instance; import be.nikiroo.fanfix.data.Chapter; @@ -23,17 +21,38 @@ public class TuiReaderStoryWindow extends TWindow { // : xxx.. > >> (max size for name = getWith() - X) // TODO: show all meta info before - + // TODO: text.append("Resume:\n\n "); -> to status bar + + // -2 because 0-based, 2 for borders, -1 to hide the HScroll + textField = addText("", 0, 0, getWidth() - 2, getHeight() - 2); + Chapter resume = getStory().getMeta().getResume(); - StringBuilder text = new StringBuilder(); if (resume != null) { - // TODO: why does \n not work but \n\n do? bug in jexer? - text.append("Resume:\n\n "); // -> to status bar for (Paragraph para : resume) { - text.append(para.getContent()).append("\n\n "); + // TODO: This is not efficient, should be changed + for (String line : para.getContent().split("\n")) { + textField.addLine(line); + } } } - textField = addText(text.toString(), 0, 0, getWidth(), getHeight()); + + statusBar = newStatusBar(desc(meta)); + statusBar.addShortcutKeypress(TKeypress.kbF10, TCommand.cmExit, "Exit"); + + // -3 because 0-based and 2 for borders + TButton first = addButton("<<", 0, getHeight() - 3, + new TAction() { + public void DO() { + // TODO + } + } + ); + addButton("<", 3, getHeight() - 3, null); + addButton(">", 5, getHeight() - 3, null); + addButton(">>", 7, getHeight() - 3, null); + // TODO: pad with space up to end of window + // TODO: do not show "0/x: " for desc, only for other chapters + addLabel(String.format(" %d/%d: %s", resume.getNumber(), getStory().getChapters().size(), resume.getName()), 11, getHeight() - 3); } @Override @@ -42,7 +61,7 @@ public class TuiReaderStoryWindow extends TWindow { // Resize the text field textField.setWidth(resize.getWidth()); - textField.setHeight(resize.getHeight()); + textField.setHeight(resize.getHeight() - 2); textField.reflow(); } -- 2.27.0 From edfd3577ad35ca77bc0312849c6f4ccfe3394a5f Mon Sep 17 00:00:00 2001 From: Niki Roo Date: Wed, 28 Jun 2017 19:08:05 +0200 Subject: [PATCH 14/16] More work on TUI (can now browse a text story) --- libs/jexer-0.0.4-sources.patch.jar | Bin 20542 -> 23536 bytes .../fanfix/reader/TuiReaderStoryWindow.java | 128 ++++++++++++++---- 2 files changed, 99 insertions(+), 29 deletions(-) diff --git a/libs/jexer-0.0.4-sources.patch.jar b/libs/jexer-0.0.4-sources.patch.jar index 85dc502747923c3b5f604ef8a2151c8e83dcc506..0816729da0f14e142a188189690ed56bd3010058 100644 GIT binary patch delta 3015 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 JE?NKp004``%Qyf4 delta 41 wcmeycopIj+#toL{n>(GROH6KxmYZxB%{_T_v^gIO0}F!}BLl-dKL#KG08W(*cK`qY diff --git a/src/be/nikiroo/fanfix/reader/TuiReaderStoryWindow.java b/src/be/nikiroo/fanfix/reader/TuiReaderStoryWindow.java index 9572566..9613e63 100644 --- a/src/be/nikiroo/fanfix/reader/TuiReaderStoryWindow.java +++ b/src/be/nikiroo/fanfix/reader/TuiReaderStoryWindow.java @@ -1,5 +1,8 @@ package be.nikiroo.fanfix.reader; +import java.util.ArrayList; +import java.util.List; + import jexer.*; import jexer.event.TResizeEvent; import be.nikiroo.fanfix.Instance; @@ -12,47 +15,55 @@ public class TuiReaderStoryWindow extends TWindow { private MetaData meta; private Story story; private TText textField; + private int chapter = -2; + private List navigationButtons; + private TLabel chapterName; public TuiReaderStoryWindow(TApplication app, MetaData meta) { + this(app, meta, 0); + } + + public TuiReaderStoryWindow(TApplication app, MetaData meta, int chapter) { super(app, desc(meta), 0, 0, 60, 18, CENTERED | RESIZABLE); this.meta = meta; - // /TODO: status bar with info, buttons to change chapter << < Chapter 0 - // : xxx.. > >> (max size for name = getWith() - X) + // TODO: show all meta info before? - // TODO: show all meta info before - // TODO: text.append("Resume:\n\n "); -> to status bar - // -2 because 0-based, 2 for borders, -1 to hide the HScroll textField = addText("", 0, 0, getWidth() - 2, getHeight() - 2); - - Chapter resume = getStory().getMeta().getResume(); - if (resume != null) { - for (Paragraph para : resume) { - // TODO: This is not efficient, should be changed - for (String line : para.getContent().split("\n")) { - textField.addLine(line); - } - } - } - + statusBar = newStatusBar(desc(meta)); statusBar.addShortcutKeypress(TKeypress.kbF10, TCommand.cmExit, "Exit"); - + + navigationButtons = new ArrayList(4); + // -3 because 0-based and 2 for borders - TButton first = addButton("<<", 0, getHeight() - 3, - new TAction() { + int row = getHeight() - 3; + + navigationButtons.add(addButton("<<", 0, row, new TAction() { public void DO() { - // TODO + setChapter(0); } - } - ); - addButton("<", 3, getHeight() - 3, null); - addButton(">", 5, getHeight() - 3, null); - addButton(">>", 7, getHeight() - 3, null); - // TODO: pad with space up to end of window - // TODO: do not show "0/x: " for desc, only for other chapters - addLabel(String.format(" %d/%d: %s", resume.getNumber(), getStory().getChapters().size(), resume.getName()), 11, getHeight() - 3); + })); + navigationButtons.add(addButton("<", 3, row, new TAction() { + public void DO() { + setChapter(TuiReaderStoryWindow.this.chapter - 1); + } + })); + navigationButtons.add(addButton(">", 5, row, new TAction() { + public void DO() { + setChapter(TuiReaderStoryWindow.this.chapter + 1); + } + })); + navigationButtons.add(addButton(">>", 7, row, new TAction() { + public void DO() { + setChapter(getStory().getChapters().size()); + } + })); + + chapterName = addLabel("", 11, row); + chapterName.setWidth(getWidth() - 10); + setChapter(chapter); } @Override @@ -63,11 +74,70 @@ public class TuiReaderStoryWindow extends TWindow { textField.setWidth(resize.getWidth()); textField.setHeight(resize.getHeight() - 2); textField.reflow(); + + // -3 because 0-based and 2 for borders + int row = getHeight() - 3; + + String name = chapterName.getLabel(); + while (name.length() < resize.getWidth() - chapterName.getX()) { + name += " "; + } + chapterName.setLabel(name); + chapterName.setWidth(resize.getWidth() - 10); + chapterName.setY(row); + + for (TButton button : navigationButtons) { + button.setY(row); + } + } + + private void setChapter(int chapter) { + if (chapter < 0) { + chapter = 0; + } + + if (chapter > getStory().getChapters().size()) { + chapter = getStory().getChapters().size(); + } + + if (chapter != this.chapter) { + this.chapter = chapter; + Chapter chap; + String name; + if (chapter == 0) { + chap = getStory().getMeta().getResume(); + name = String.format(" %s", chap.getName()); + } else { + chap = getStory().getChapters().get(chapter - 1); + name = String.format(" %d/%d: %s", chapter, getStory() + .getChapters().size(), chap.getName()); + } + + while (name.length() < getWidth() - chapterName.getX()) { + name += " "; + } + + chapterName.setLabel(name); + + StringBuilder builder = new StringBuilder(); + // TODO: i18n + String c = String.format("Chapter %d: %s", chapter, chap.getName()); + builder.append(c).append("\n"); + for (int i = 0; i < c.length(); i++) { + builder.append("═"); + } + builder.append("\n\n"); + for (Paragraph para : chap) { + builder.append(para.getContent()).append("\n\n"); + } + textField.setText(builder.toString()); + textField.reflow(); + } } private Story getStory() { if (story == null) { - // TODO: progress bar + // TODO: progress bar? story = Instance.getLibrary().getStory(meta.getLuid(), null); } return story; -- 2.27.0 From 0861d62ac01062a3cd20624cdd6a826df284695e Mon Sep 17 00:00:00 2001 From: Niki Roo Date: Wed, 28 Jun 2017 20:57:08 +0200 Subject: [PATCH 15/16] Fix TUI << < > >> buttons mouse clicking --- libs/jexer-0.0.4-sources.patch.jar | Bin 23536 -> 30665 bytes .../fanfix/reader/TuiReaderStoryWindow.java | 27 +++++++++++------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/libs/jexer-0.0.4-sources.patch.jar b/libs/jexer-0.0.4-sources.patch.jar index 0816729da0f14e142a188189690ed56bd3010058..0ad0d46779d857bc39057433844ec01f50e3b107 100644 GIT binary patch delta 10195 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 aEdqZ+lY4hS4g~-O0IUH304`bp0000OD$Wi7 diff --git a/src/be/nikiroo/fanfix/reader/TuiReaderStoryWindow.java b/src/be/nikiroo/fanfix/reader/TuiReaderStoryWindow.java index 9613e63..c942624 100644 --- a/src/be/nikiroo/fanfix/reader/TuiReaderStoryWindow.java +++ b/src/be/nikiroo/fanfix/reader/TuiReaderStoryWindow.java @@ -3,7 +3,14 @@ package be.nikiroo.fanfix.reader; import java.util.ArrayList; import java.util.List; -import jexer.*; +import jexer.TAction; +import jexer.TApplication; +import jexer.TButton; +import jexer.TCommand; +import jexer.TKeypress; +import jexer.TLabel; +import jexer.TText2; +import jexer.TWindow; import jexer.event.TResizeEvent; import be.nikiroo.fanfix.Instance; import be.nikiroo.fanfix.data.Chapter; @@ -14,7 +21,7 @@ import be.nikiroo.fanfix.data.Story; public class TuiReaderStoryWindow extends TWindow { private MetaData meta; private Story story; - private TText textField; + private TText2 textField; private int chapter = -2; private List navigationButtons; private TLabel chapterName; @@ -29,8 +36,7 @@ public class TuiReaderStoryWindow extends TWindow { // TODO: show all meta info before? - // -2 because 0-based, 2 for borders, -1 to hide the HScroll - textField = addText("", 0, 0, getWidth() - 2, getHeight() - 2); + textField = new TText2(this, "", 0, 0, getWidth() - 2, getHeight() - 2); statusBar = newStatusBar(desc(meta)); statusBar.addShortcutKeypress(TKeypress.kbF10, TCommand.cmExit, "Exit"); @@ -40,28 +46,29 @@ public class TuiReaderStoryWindow extends TWindow { // -3 because 0-based and 2 for borders int row = getHeight() - 3; - navigationButtons.add(addButton("<<", 0, row, new TAction() { + addButton(" ", 0, row, null); // for bg colour when << button is pressed + navigationButtons.add(addButton("<< ", 0, row, new TAction() { public void DO() { setChapter(0); } })); - navigationButtons.add(addButton("<", 3, row, new TAction() { + navigationButtons.add(addButton("< ", 4, row, new TAction() { public void DO() { setChapter(TuiReaderStoryWindow.this.chapter - 1); } })); - navigationButtons.add(addButton(">", 5, row, new TAction() { + navigationButtons.add(addButton("> ", 7, row, new TAction() { public void DO() { setChapter(TuiReaderStoryWindow.this.chapter + 1); } })); - navigationButtons.add(addButton(">>", 7, row, new TAction() { + navigationButtons.add(addButton(">> ", 10, row, new TAction() { public void DO() { setChapter(getStory().getChapters().size()); } })); - chapterName = addLabel("", 11, row); + chapterName = addLabel("", 14, row); chapterName.setWidth(getWidth() - 10); setChapter(chapter); } @@ -71,7 +78,7 @@ public class TuiReaderStoryWindow extends TWindow { super.onResize(resize); // Resize the text field - textField.setWidth(resize.getWidth()); + textField.setWidth(resize.getWidth() - 2); textField.setHeight(resize.getHeight() - 2); textField.reflow(); -- 2.27.0 From a3a3483716e879018fbe4ba0eb7712ffd2cb88e7 Mon Sep 17 00:00:00 2001 From: Niki Roo Date: Wed, 28 Jun 2017 22:16:00 +0200 Subject: [PATCH 16/16] TUI: fix CloseAllWindows --- libs/jexer-0.0.4-sources.patch.jar | Bin 30665 -> 30659 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/libs/jexer-0.0.4-sources.patch.jar b/libs/jexer-0.0.4-sources.patch.jar index 0ad0d46779d857bc39057433844ec01f50e3b107..05004dd145b615f98eac2ad80006e5d3dfd78f2d 100644 GIT binary patch delta 4623 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 -- 2.27.0