X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=supported%2FBasicSupport.java;h=56a3bb80cb6d51fe40a9c4d830e12cb275102d76;hb=8831d290121e3a77f535ce06d61968a26ccf172a;hp=900bcf9d5c2f59cb34b6879416b0e52565db769b;hpb=5cf61f350b436825d28f5f4f50d8e86fbe5485f1;p=nikiroo-utils.git diff --git a/supported/BasicSupport.java b/supported/BasicSupport.java index 900bcf9..56a3bb8 100644 --- a/supported/BasicSupport.java +++ b/supported/BasicSupport.java @@ -12,6 +12,7 @@ import java.util.Map; 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; @@ -272,8 +273,10 @@ public abstract class BasicSupport { Story story = new Story(); MetaData meta = getMeta(); - if (meta.getCreationDate() == null || meta.getCreationDate().isEmpty()) { - meta.setCreationDate(StringUtils.fromTime(new Date().getTime())); + if (meta.getCreationDate() == null + || meta.getCreationDate().trim().isEmpty()) { + meta.setCreationDate(bsHelper + .formatDate(StringUtils.fromTime(new Date().getTime()))); } story.setMeta(meta); pg.put("meta", meta); @@ -345,6 +348,8 @@ public abstract class BasicSupport { scan.useDelimiter("\0"); try { return new JSONObject(scan.next()); + } catch (JSONException e) { + throw new IOException(e); } finally { scan.close(); } @@ -372,7 +377,25 @@ public abstract class BasicSupport { 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(); } @@ -412,7 +435,7 @@ public abstract class BasicSupport { story.setChapters(new ArrayList()); List> chapters = getChapters(pgGetChapters); pgGetChapters.done(); // 20% - + if (chapters != null) { Progress pgChaps = new Progress("Extracting chapters", 0, chapters.size() * 300); @@ -443,10 +466,11 @@ public abstract class BasicSupport { words += cc.getWords(); story.getChapters().add(cc); - story.getMeta().setWords(words); i++; } + + story.getMeta().setWords(words); pgChaps.setName("Extracting chapters"); pgChaps.done(); @@ -469,7 +493,8 @@ public abstract class BasicSupport { * 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