private Map<Integer, String> chapterContents;
public FimfictionApi() throws IOException {
- if (Instance.getConfig().getBoolean(
- Config.LOGIN_FIMFICTION_APIKEY_FORCE_HTML, false)) {
- throw new IOException(
- "Configuration is set to force HTML scrapping");
+ if (Instance.getInstance().getConfig().getBoolean(Config.LOGIN_FIMFICTION_APIKEY_FORCE_HTML, false)) {
+ throw new IOException("Configuration is set to force HTML scrapping");
}
- String oauth = Instance.getConfig().getString(
- Config.LOGIN_FIMFICTION_APIKEY_TOKEN);
+ String oauth = Instance.getInstance().getConfig().getString(Config.LOGIN_FIMFICTION_APIKEY_TOKEN);
if (oauth == null || oauth.isEmpty()) {
- String clientId = Instance.getConfig().getString(
- Config.LOGIN_FIMFICTION_APIKEY_CLIENT_ID)
- + "";
- String clientSecret = Instance.getConfig().getString(
- Config.LOGIN_FIMFICTION_APIKEY_CLIENT_SECRET)
+ String clientId = Instance.getInstance().getConfig().getString(Config.LOGIN_FIMFICTION_APIKEY_CLIENT_ID)
+ "";
+ String clientSecret = Instance.getInstance().getConfig()
+ .getString(Config.LOGIN_FIMFICTION_APIKEY_CLIENT_SECRET) + "";
if (clientId.trim().isEmpty() || clientSecret.trim().isEmpty()) {
throw new IOException("API key required for the beta API v2");
oauth = generateOAuth(clientId, clientSecret);
- Instance.getConfig().setString(
- Config.LOGIN_FIMFICTION_APIKEY_TOKEN, oauth);
- Instance.getConfig().updateFile();
+ Instance.getInstance().getConfig().setString(Config.LOGIN_FIMFICTION_APIKEY_TOKEN, oauth);
+ Instance.getInstance().getConfig().updateFile();
}
this.oauth = oauth;
urlString = urlString.replace("[", "%5B").replace("]", "%5D");
URL url = new URL(urlString);
- InputStream jsonIn = Instance.getCache().open(url, this, false);
+ InputStream jsonIn = Instance.getInstance().getCache().open(url, this, false);
try {
return IOUtils.readSmallStream(jsonIn);
} finally {
meta.setTitle(getKeyJson(json, 0, "type", "story", "title"));
meta.setAuthor(getKeyJson(json, 0, "type", "user", "name"));
- meta.setDate(getKeyJson(json, 0, "type", "story", "date_published"));
+ meta.setDate(bsHelper.formatDate(
+ getKeyJson(json, 0, "type", "story", "date_published")));
meta.setTags(getTags());
meta.setSource(getType().getSourceName());
meta.setUrl(getSource().toString());
if (!coverImageLink.trim().isEmpty()) {
URL coverImageUrl = new URL(coverImageLink.trim());
- InputStream in = Instance.getCache()
- .open(coverImageUrl, this, true);
+ // No need to use the oauth, cookies... for the cover
+ // Plus: it crashes on Android because of the referer
try {
- meta.setCover(new Image(in));
- } finally {
- in.close();
+ InputStream in = Instance.getInstance().getCache().open(coverImageUrl, null, true);
+ try {
+ meta.setCover(new Image(in));
+ } finally {
+ in.close();
+ }
+ } catch (IOException e) {
+ Instance.getInstance().getTraceHandler()
+ .error(new IOException("Cannot get the story cover, ignoring...", e));
}
}
params.put("client_id", clientId);
params.put("client_secret", clientSecret);
params.put("grant_type", "client_credentials");
- InputStream in = Instance.getCache().openNoCache(url, null, params,
- null, null);
+ InputStream in = Instance.getInstance().getCache().openNoCache(url, null, params, null, null);
String jsonToken = IOUtils.readSmallStream(in);
in.close();