* @throws IOException
* in case of I/O error
*/
- abstract protected void fillTag(SearchableTag tag) throws IOException;
+ abstract public void fillTag(SearchableTag tag) throws IOException;
+
+ /**
+ * Search for the given term and return the number of pages of results of
+ * stories satisfying this search term.
+ *
+ * @param search
+ * the term to search for
+ *
+ * @return a number of pages
+ *
+ * @throws IOException
+ * in case of I/O error
+ */
+ abstract public int searchPages(String search) throws IOException;
/**
* Search for the given term and return a list of stories satisfying this
*
* @param search
* the term to search for
+ * @param page
+ * the page to use for result pagination, index is 1-based
*
* @return a list of stories that satisfy that search term
*
* @throws IOException
* in case of I/O error
*/
- abstract public List<MetaData> search(String search) throws IOException;
+ abstract public List<MetaData> search(String search, int page)
+ throws IOException;
/**
* Search for the given tag and return a list of stories satisfying this
* <p>
* URL is guaranteed to be usable, LUID will always be NULL.
*
- * @param tagId
+ * @param tag
* the tag to search for
+ * @param page
+ * the page to use for result pagination (see
+ * {@link SearchableTag#getPages()}, remember to check for -1),
+ * index is 1-based
*
* @return a list of stories that satisfy that search term
*
* @throws IOException
* in case of I/O error
*/
- abstract public List<MetaData> search(SearchableTag tag) throws IOException;
+ abstract public List<MetaData> search(SearchableTag tag, int page)
+ throws IOException;
/**
* Load a document from its url.
*
* @param url
* the URL to load
+ * @param stable
+ * TRUE for more stable resources, FALSE when they often change
+ *
* @return the document
*
* @throws IOException
* in case of I/O error
*/
- protected Document load(String url) throws IOException {
- return load(new URL(url));
+ protected Document load(String url, boolean stable) throws IOException {
+ return load(new URL(url), stable);
}
/**
*
* @param url
* the URL to load
+ * @param stable
+ * TRUE for more stable resources, FALSE when they often change
+ *
* @return the document
*
* @throws IOException
* in case of I/O error
*/
- protected Document load(URL url) throws IOException {
- return DataUtil.load(Instance.getCache().open(url, support, false),
+ protected Document load(URL url, boolean stable) throws IOException {
+ return DataUtil.load(Instance.getCache().open(url, support, stable),
"UTF-8", url.toString());
}
// TODO
break;
case MANGA_LEL:
- // TODO
+ support = new MangaLel();
break;
case CBZ:
case HTML: