X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Fsupported%2FText.java;h=daa108fc2c6a31fa322ae7b037b079a0206923a5;hb=505be508ae7d3fb48122be548b310a238cfb91eb;hp=1e5977a493660bac7b6551ba7f09d506696c8074;hpb=13fdb89adc017452a7a72f552b933f8e7b869413;p=nikiroo-utils.git diff --git a/src/be/nikiroo/fanfix/supported/Text.java b/src/be/nikiroo/fanfix/supported/Text.java index 1e5977a..daa108f 100644 --- a/src/be/nikiroo/fanfix/supported/Text.java +++ b/src/be/nikiroo/fanfix/supported/Text.java @@ -1,7 +1,6 @@ package be.nikiroo.fanfix.supported; import java.io.File; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.net.URISyntaxException; @@ -16,11 +15,13 @@ import org.jsoup.nodes.Document; import be.nikiroo.fanfix.Instance; import be.nikiroo.fanfix.bundles.Config; +import be.nikiroo.fanfix.data.Chapter; import be.nikiroo.fanfix.data.MetaData; +import be.nikiroo.fanfix.data.Paragraph; import be.nikiroo.utils.Image; import be.nikiroo.utils.ImageUtils; -import be.nikiroo.utils.streams.MarkableFileInputStream; import be.nikiroo.utils.Progress; +import be.nikiroo.utils.streams.MarkableFileInputStream; /** * Support class for local stories encoded in textual format, with a few rules: @@ -147,7 +148,7 @@ class Text extends BasicSupport { author = authorDate.substring(0, pos); } - return BasicSupportHelper.fixAuthor(author); + return bsHelper.fixAuthor(author); } private String getDate() { @@ -172,7 +173,20 @@ class Text extends BasicSupport { @Override protected String getDesc() throws IOException { - return getChapterContent(null, 0, null); + String content = getChapterContent(null, 0, null).trim(); + if (!content.isEmpty()) { + Chapter desc = bsPara.makeChapter(this, null, 0, "Description", + content, isHtml(), null); + StringBuilder builder = new StringBuilder(); + for (Paragraph para : desc) { + if (builder.length() > 0) { + builder.append("\n"); + } + builder.append(para.getContent()); + } + } + + return content; } private Image getCover(File sourceFile) { @@ -184,8 +198,7 @@ class Text extends BasicSupport { } } - Image cover = BasicSupportImages.getImage(this, - sourceFile.getParentFile(), path); + Image cover = bsImages.getImage(this, sourceFile.getParentFile(), path); if (cover != null) { try { File tmp = Instance.getTempFiles().createTempFile( @@ -238,9 +251,9 @@ class Text extends BasicSupport { boolean inChap = false; while (scan.hasNext()) { String line = scan.next(); - if (detectChapter(line, number) != null) { + if (!inChap && detectChapter(line, number) != null) { inChap = true; - } else if (inChap && detectChapter(line, number + 1) != null) { + } else if (detectChapter(line, number + 1) != null) { break; } else if (inChap) { builder.append(line); @@ -326,20 +339,29 @@ class Text extends BasicSupport { * * @param line * the line to check + * @param number + * the specific chapter number to check for * * @return the language or NULL */ static private String detectChapter(String line, int number) { line = line.toUpperCase(); for (String lang : Instance.getConfig().getList(Config.CONF_CHAPTER)) { - String chapter = Instance.getConfig().getStringX(Config.CONF_CHAPTER, - lang); + String chapter = Instance.getConfig().getStringX( + Config.CONF_CHAPTER, lang); if (chapter != null && !chapter.isEmpty()) { chapter = chapter.toUpperCase() + " "; if (line.startsWith(chapter)) { // We want "[CHAPTER] [number]: [name]", with ": [name]" // optional String test = line.substring(chapter.length()).trim(); + + String possibleNum = test.trim(); + if (possibleNum.indexOf(':') > 0) { + possibleNum = possibleNum.substring(0, + possibleNum.indexOf(':')).trim(); + } + if (test.startsWith(Integer.toString(number))) { test = test .substring(Integer.toString(number).length())