X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Fsearchable%2FFanfiction.java;h=e2fba1ff404f17d2a23bc18defbc2b03d7a425e3;hb=868e32295fb975158cb8456cb559e79924b73151;hp=d25153eb28f6921ea7c4bc64410f384b6e812dd7;hpb=12443642377be74159578c99af7a9883571e38bf;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/searchable/Fanfiction.java b/src/be/nikiroo/fanfix/searchable/Fanfiction.java index d25153e..e2fba1f 100644 --- a/src/be/nikiroo/fanfix/searchable/Fanfiction.java +++ b/src/be/nikiroo/fanfix/searchable/Fanfiction.java @@ -149,15 +149,6 @@ class Fanfiction extends BasicSearchable { return getStories(url, null, null); } - @Override - public int searchPages(String search) throws IOException { - String encoded = URLEncoder.encode(search.toLowerCase(), "utf-8"); - String url = BASE_URL + "search/?ready=1&type=story&keywords=" - + encoded; - - return getPages(load(url, false)); - } - @Override public List search(SearchableTag tag, int page) throws IOException { @@ -197,6 +188,25 @@ class Fanfiction extends BasicSearchable { return metas; } + @Override + public int searchPages(String search) throws IOException { + String encoded = URLEncoder.encode(search.toLowerCase(), "utf-8"); + String url = BASE_URL + "search/?ready=1&type=story&keywords=" + + encoded; + + return getPages(load(url, false)); + } + + @Override + public int searchPages(SearchableTag tag) throws IOException { + if (tag.isLeaf()) { + String url = tag.getId(); + return getPages(load(url, false)); + } + + return 0; + } + /** * Return the number of pages in this stories result listing. * @@ -260,20 +270,22 @@ class Fanfiction extends BasicSearchable { MetaData meta = new MetaData(); meta.setImageDocument(false); meta.setSource(getType().getSourceName()); + meta.setPublisher(getType().getSourceName()); + meta.setType(getType().toString()); // Title, URL, Cover Element stitle = story.getElementsByClass("stitle").first(); if (stitle != null) { meta.setTitle(stitle.text()); meta.setUrl(stitle.absUrl("href")); + meta.setUuid(meta.getUrl()); Element cover = stitle.getElementsByTag("img").first(); if (cover != null) { // note: see data-original if needed? String coverUrl = cover.absUrl("src"); try { - InputStream in = Instance.getCache().open( - new URL(coverUrl), getSupport(), true); + InputStream in = Instance.getInstance().getCache().open(new URL(coverUrl), getSupport(), true); try { meta.setCover(new Image(in)); } finally { @@ -281,10 +293,8 @@ class Fanfiction extends BasicSearchable { } } catch (Exception e) { // Should not happen on Fanfiction.net - Instance.getTraceHandler().error( - new Exception( - "Cannot download cover for Fanfiction story in search mode: " - + meta.getTitle(), e)); + Instance.getInstance().getTraceHandler().error(new Exception( + "Cannot download cover for Fanfiction story in search mode: " + meta.getTitle(), e)); } } } @@ -324,8 +334,7 @@ class Fanfiction extends BasicSearchable { } meta.setResume(getSupport().makeChapter(new URL(sourceUrl), 0, - Instance.getTrans().getString(StringId.DESCRIPTION), - resume)); + Instance.getInstance().getTrans().getString(StringId.DESCRIPTION), resume)); } // How are the tags ordered?