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;
return story;
}
+ /**
+ * Utility method to convert the given URL into a JSON object.
+ * <p>
+ * 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.
+ * <p>
+ * 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.
pgMeta.done(); // 10%
pg.put("meta", story.getMeta());
- pg.setName(story.getMeta().getTitle());
-
Progress pgGetChapters = new Progress();
pg.addProgress(pgGetChapters, 10);
story.setChapters(new ArrayList<Chapter>());
pgChaps.done();
}
- pg.setName(story.getMeta().getTitle());
pg.done();
return story;