Improve importing progress reporting
[fanfix.git] / src / be / nikiroo / fanfix / supported / Fanfiction.java
index 7d4285b33e86109650e397c1d58358d54a9633a9..1d1f3f4a09cbbd88939c762434a9d57a0cfd342c 100644 (file)
@@ -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;
 
 /**
@@ -209,7 +211,8 @@ class Fanfiction extends BasicSupport {
        }
 
        @Override
-       protected List<Entry<String, URL>> getChapters(URL source, InputStream in) {
+       protected List<Entry<String, URL>> getChapters(URL source, InputStream in,
+                       Progress pg) {
                List<Entry<String, URL>> urls = new ArrayList<Entry<String, URL>>();
 
                String base = source.toString();
@@ -285,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";
@@ -309,11 +313,26 @@ class Fanfiction extends BasicSupport {
                                if (builder.length() == 0) {
                                        int pos = line.indexOf("<hr");
                                        if (pos >= 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(' ');
                        }
                }