X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Fsupported%2FBasicSupport.java;h=0a5ec3686e1be43c52a328d1a1be86e805ad21fe;hb=7949d4a5098d8554c333c9fbbda469488bc66f7e;hp=ba2164cacac6f077ab1f4d1c97e23b9d9a56f31d;hpb=a97f9702eae2b51ee64a163f92ec4d72a216e958;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/supported/BasicSupport.java b/src/be/nikiroo/fanfix/supported/BasicSupport.java index ba2164c..0a5ec36 100644 --- a/src/be/nikiroo/fanfix/supported/BasicSupport.java +++ b/src/be/nikiroo/fanfix/supported/BasicSupport.java @@ -2,14 +2,17 @@ package be.nikiroo.fanfix.supported; import java.io.IOException; import java.io.InputStream; +import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Scanner; import java.util.Map.Entry; +import org.json.JSONObject; import org.jsoup.helper.DataUtil; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; @@ -269,10 +272,13 @@ 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); pg.setProgress(50); @@ -292,6 +298,63 @@ public abstract class BasicSupport { return story; } + /** + * Utility method to convert the given URL into a JSON object. + *

+ * Note that this method expects small JSON files (everything is copied into + * memory at least twice). + * + * @param url + * the URL to parse + * @param stable + * TRUE for more stable resources, FALSE when they often change + * + * @return the JSON object + * + * @throws IOException + * in case of I/O error + */ + protected JSONObject getJson(String url, boolean stable) + throws IOException { + try { + return getJson(new URL(url), stable); + } catch (MalformedURLException e) { + throw new IOException("Malformed URL: " + url, e); + } + } + + /** + * Utility method to convert the given URL into a JSON object. + *

+ * Note that this method expects small JSON files (everything is copied into + * memory at least twice). + * + * @param url + * the URL to parse + * @param stable + * TRUE for more stable resources, FALSE when they often change + * + * @return the JSON object + * + * @throws IOException + * in case of I/O error + */ + protected JSONObject getJson(URL url, boolean stable) throws IOException { + InputStream in = Instance.getInstance().getCache().open(url, null, + stable); + try { + Scanner scan = new Scanner(in); + scan.useDelimiter("\0"); + try { + return new JSONObject(scan.next()); + } finally { + scan.close(); + } + } finally { + in.close(); + } + } + /** * Process the given story resource into a fully filled {@link Story} * object. @@ -344,8 +407,7 @@ public abstract class BasicSupport { pg.addProgress(pgMeta, 10); Story story = processMeta(true, pgMeta); pgMeta.done(); // 10% - - pg.setName(story.getMeta().getTitle()); + pg.put("meta", story.getMeta()); Progress pgGetChapters = new Progress(); pg.addProgress(pgGetChapters, 10); @@ -392,7 +454,6 @@ public abstract class BasicSupport { pgChaps.done(); } - pg.setName(story.getMeta().getTitle()); pg.done(); return story;