X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Fsupported%2FFanfiction.java;h=1d1f3f4a09cbbd88939c762434a9d57a0cfd342c;hb=83f66cbbd12246a5e2f1aeee1afe36503b901814;hp=5f049e456c7d0b5930c01deef11227be9f7ecab5;hpb=333f0e7b5e333e8f6222881ce35398f403fc4121;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/supported/Fanfiction.java b/src/be/nikiroo/fanfix/supported/Fanfiction.java index 5f049e4..1d1f3f4 100644 --- a/src/be/nikiroo/fanfix/supported/Fanfiction.java +++ b/src/be/nikiroo/fanfix/supported/Fanfiction.java @@ -13,7 +13,9 @@ import java.util.Map.Entry; import java.util.Scanner; import be.nikiroo.fanfix.Instance; +import be.nikiroo.fanfix.bundles.Config; import be.nikiroo.fanfix.data.MetaData; +import be.nikiroo.utils.Progress; import be.nikiroo.utils.StringUtils; /** @@ -124,6 +126,8 @@ class Fanfiction extends BasicSupport { } private String getAuthor(InputStream in) { + String author = null; + int i = 0; @SuppressWarnings("resource") Scanner scan = new Scanner(in, "UTF-8"); @@ -132,12 +136,13 @@ class Fanfiction extends BasicSupport { String line = scan.next(); if (line.contains("xcontrast_txt")) { if ((++i) == 3) { - return StringUtils.unhtml(line).trim(); + author = StringUtils.unhtml(line).trim(); + break; } } } - return null; + return fixAuthor(author); } private String getDate(InputStream in) { @@ -206,7 +211,8 @@ class Fanfiction extends BasicSupport { } @Override - protected List> getChapters(URL source, InputStream in) { + protected List> getChapters(URL source, InputStream in, + Progress pg) { List> urls = new ArrayList>(); String base = source.toString(); @@ -282,7 +288,8 @@ class Fanfiction extends BasicSupport { } @Override - protected String getChapterContent(URL source, InputStream in, int number) { + protected String getChapterContent(URL source, InputStream in, int number, + Progress pg) { StringBuilder builder = new StringBuilder(); String startAt = "class='storytext "; String endAt1 = "function review_init"; @@ -306,11 +313,26 @@ class Fanfiction extends BasicSupport { if (builder.length() == 0) { int pos = line.indexOf("= 0) { - line = line.substring(pos); + boolean chaptered = false; + for (String lang : Instance.getConfig() + .getString(Config.CHAPTER).split(",")) { + String chapterWord = Instance.getConfig() + .getStringX(Config.CHAPTER, lang); + int posChap = line.indexOf(chapterWord + " "); + if (posChap < pos) { + chaptered = true; + break; + } + } + + if (chaptered) { + line = line.substring(pos); + } } } builder.append(line); + builder.append(' '); } }