import java.util.Scanner;
import java.util.Map.Entry;
+import org.json.JSONException;
import org.json.JSONObject;
import org.jsoup.helper.DataUtil;
import org.jsoup.nodes.Document;
pg.setProgress(30);
Story story = new Story();
+
MetaData meta = getMeta();
+ meta.setType(getType().toString());
+ meta.setSource(getType().getSourceName());
+ meta.setPublisher(getType().getSourceName());
+
if (meta.getCreationDate() == null
|| meta.getCreationDate().trim().isEmpty()) {
meta.setCreationDate(bsHelper
scan.useDelimiter("\0");
try {
return new JSONObject(scan.next());
+ } catch (JSONException e) {
+ throw new IOException(e);
} finally {
scan.close();
}
sourceNode = loadDocument(source);
try {
- return doProcess(pg);
+ Story story = doProcess(pg);
+
+ // Check for "no chapters" stories
+ if (story.getChapters().isEmpty()
+ && story.getMeta().getResume() != null
+ && !story.getMeta().getResume().getParagraphs().isEmpty()) {
+ Chapter resume = story.getMeta().getResume();
+ resume.setName("");
+ resume.setNumber(1);
+ story.getChapters().add(resume);
+ story.getMeta().setWords(resume.getWords());
+
+ String descChapterName = Instance.getInstance().getTrans()
+ .getString(StringId.DESCRIPTION);
+ resume = new Chapter(0, descChapterName);
+ story.getMeta().setResume(resume);
+ }
+
+ return story;
} finally {
close();
}
story.setChapters(new ArrayList<Chapter>());
List<Entry<String, URL>> chapters = getChapters(pgGetChapters);
pgGetChapters.done(); // 20%
-
+
if (chapters != null) {
Progress pgChaps = new Progress("Extracting chapters", 0,
chapters.size() * 300);
words += cc.getWords();
story.getChapters().add(cc);
- story.getMeta().setWords(words);
i++;
}
+
+ story.getMeta().setWords(words);
pgChaps.setName("Extracting chapters");
pgChaps.done();
* the chapter name
* @param content
* the content of the chapter
- * @return the {@link Chapter}
+ *
+ * @return the {@link Chapter}, never NULL
*
* @throws IOException
* in case of I/O error