X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Fsearchable%2FMangaLel.java;h=5ba21a0e1ce25b799dc0b9a6d14d3a447135ef01;hb=d66deb8d8b30cff6b54db352eef34a3508939f84;hp=c8a522c896d17849ab1cc223d86c468aa15934fa;hpb=4749f2c50437f610f7e5258ab1c22a9f1bfa527a;p=nikiroo-utils.git diff --git a/src/be/nikiroo/fanfix/searchable/MangaLel.java b/src/be/nikiroo/fanfix/searchable/MangaLel.java index c8a522c..5ba21a0 100644 --- a/src/be/nikiroo/fanfix/searchable/MangaLel.java +++ b/src/be/nikiroo/fanfix/searchable/MangaLel.java @@ -50,12 +50,6 @@ class MangaLel extends BasicSearchable { // Tags are always complete } - @Override - public int searchPages(String search) throws IOException { - // No pagination - return 1; - } - @Override public List search(String search, int page) throws IOException { String url = BASE_URL + "?nomProjet=" @@ -76,56 +70,98 @@ class MangaLel extends BasicSearchable { return getResults(url); } + @Override + public int searchPages(String search) throws IOException { + // No pagination + return 1; + } + + @Override + public int searchPages(SearchableTag tag) throws IOException { + if (tag.isLeaf()) { + // No pagination + return 1; + } + + return 0; + } + private List getResults(String sourceUrl) throws IOException { List metas = new ArrayList(); - Document doc = DataUtil.load( - Instance.getCache().open(new URL(sourceUrl), getSupport(), - false), "UTF-8", sourceUrl); + Document doc = DataUtil.load(Instance.getInstance().getCache().open(new URL(sourceUrl), getSupport(), false), + "UTF-8", sourceUrl); for (Element result : doc.getElementsByClass("rechercheAffichage")) { Element a = result.getElementsByTag("a").first(); if (a != null) { + int projectId = -1; + MetaData meta = new MetaData(); - meta.setUrl(a.absUrl("href")); - Element img = result.getElementsByTag("img").first(); - if (img != null) { - String coverUrl = img.absUrl("src"); - try { - InputStream in = Instance.getCache().open( - new URL(coverUrl), getSupport(), true); - try { - meta.setCover(new Image(in)); - } finally { - in.close(); - } - } catch (Exception e) { - Instance.getTraceHandler() - .error(new Exception( - "Cannot download cover for MangaLEL story in search mode", - e)); - } - } + // Target: + // http://mangas-lecture-en-ligne.fr/index_lel.php?page=presentationProjet&idProjet=218 + + // a.absUrl("href"): + // http://mangas-lecture-en-ligne.fr/index_lel?onCommence=oui&idChapitre=2805 + + // ...but we need the PROJECT id, not the CHAPTER id -> use + // Elements infos = result.getElementsByClass("texte"); if (infos != null) { String[] tab = infos.outerHtml().split("
"); + meta.setLang("fr"); + meta.setSource(getType().getSourceName()); + meta.setPublisher(getType().getSourceName()); + meta.setType(getType().toString()); + meta.setSubject("manga"); + meta.setImageDocument(true); meta.setTitle(getVal(tab, 0)); meta.setAuthor(getVal(tab, 1)); meta.setTags(Arrays.asList(getVal(tab, 2).split(" "))); - meta.setResume(getSupport() - .makeChapter( - new URL(sourceUrl), - 0, - Instance.getTrans().getString( - StringId.DESCRIPTION), - getVal(tab, 5))); + meta.setResume(getSupport().makeChapter(new URL(sourceUrl), 0, + Instance.getInstance().getTrans().getString(StringId.DESCRIPTION), getVal(tab, 5))); } - metas.add(meta); + Element img = result.getElementsByTag("img").first(); + if (img != null) { + try { + String[] tab = img.attr("src").split("/"); + String str = tab[tab.length - 1]; + tab = str.split("\\."); + str = tab[0]; + projectId = Integer.parseInt(str); + + String coverUrl = img.absUrl("src"); + try { + InputStream in = Instance.getInstance().getCache().open(new URL(coverUrl), getSupport(), + true); + try { + meta.setCover(new Image(in)); + } finally { + in.close(); + } + } catch (Exception e) { + // Happen often on MangaLEL... + Instance.getInstance().getTraceHandler().trace( + "Cannot download cover for MangaLEL story in search mode: " + meta.getTitle()); + } + } catch (Exception e) { + // no project id... cannot use the story :( + Instance.getInstance().getTraceHandler() + .error("Cannot find ProjectId for MangaLEL story in search mode: " + meta.getTitle()); + } + } + + if (projectId >= 0) { + meta.setUrl("http://mangas-lecture-en-ligne.fr/index_lel.php?page=presentationProjet&idProjet=" + + projectId); + meta.setUuid(meta.getUrl()); + metas.add(meta); + } } }