X-Git-Url: http://git.nikiroo.be/?p=nikiroo-utils.git;a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Fsupported%2FEHentai.java;h=399ce913055cdb66934a287153a768fd6223f5e3;hp=eae377c81d9feb53d5bdb2dcdda21623227d348d;hb=cfdaf6052ddc5ca44cf19f1f6d9f154cc8443024;hpb=f0608ab10e762c1aed9608720b97c1901b5e2614 diff --git a/src/be/nikiroo/fanfix/supported/EHentai.java b/src/be/nikiroo/fanfix/supported/EHentai.java index eae377c..399ce91 100644 --- a/src/be/nikiroo/fanfix/supported/EHentai.java +++ b/src/be/nikiroo/fanfix/supported/EHentai.java @@ -1,12 +1,13 @@ package be.nikiroo.fanfix.supported; -import java.awt.image.BufferedImage; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; +import java.util.AbstractMap; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Map.Entry; import java.util.Scanner; @@ -14,6 +15,7 @@ import be.nikiroo.fanfix.Instance; import be.nikiroo.fanfix.data.Chapter; import be.nikiroo.fanfix.data.MetaData; import be.nikiroo.fanfix.data.Story; +import be.nikiroo.utils.Image; import be.nikiroo.utils.Progress; import be.nikiroo.utils.StringUtils; @@ -23,28 +25,20 @@ import be.nikiroo.utils.StringUtils; * * @author niki */ -class EHentai extends BasicSupport { - @Override - public String getSourceName() { - return "e-hentai.org"; - } - +class EHentai extends BasicSupport_Deprecated { @Override protected MetaData getMeta(URL source, InputStream in) throws IOException { MetaData meta = new MetaData(); meta.setTitle(getTitle(reset(in))); meta.setAuthor(getAuthor(reset(in))); - meta.setDate(""); + meta.setDate(getDate(reset(in))); meta.setTags(getTags(reset(in))); - meta.setSource(getSourceName()); meta.setUrl(source.toString()); - meta.setPublisher(getSourceName()); meta.setUuid(source.toString()); meta.setLuid(""); - meta.setLang("EN"); - meta.setSubject("Furry"); - meta.setType(getType().toString()); + meta.setLang(getLang(reset(in))); + meta.setSubject("Hentai"); meta.setImageDocument(true); meta.setCover(getCover(source, reset(in))); meta.setFakeCover(true); @@ -57,7 +51,7 @@ class EHentai extends BasicSupport { // There is no chapters on e621, just pagination... Story story = super.process(url, pg); - Chapter only = new Chapter(1, null); + Chapter only = new Chapter(1, ""); for (Chapter chap : story) { only.getParagraphs().addAll(chap.getParagraphs()); } @@ -78,9 +72,15 @@ class EHentai extends BasicSupport { return true; } - private BufferedImage getCover(URL source, InputStream in) - throws IOException { - BufferedImage author = null; + @Override + public Map getCookies() { + Map cookies = super.getCookies(); + cookies.put("nw", "1"); + return cookies; + } + + private Image getCover(URL source, InputStream in) { + Image author = null; String coverLine = getKeyLine(in, "
Language", + "class=\"gdt2\"", ""); + if (langLine != null) { + langLine = StringUtils.unhtml(langLine).trim(); + if (langLine.equalsIgnoreCase("English")) { + lang = "en"; + } else if (langLine.equalsIgnoreCase("Japanese")) { + lang = "jp"; + } else if (langLine.equalsIgnoreCase("French")) { + lang = "fr"; + } else { + // TODO find the code for other languages? + lang = langLine; + } + } + + return lang; + } + + private String getDate(InputStream in) { + String date = null; + + String dateLine = getKeyLine(in, "class=\"gdt1\">Posted", + "class=\"gdt2\"", ""); + if (dateLine != null) { + dateLine = StringUtils.unhtml(dateLine).trim(); + if (dateLine.length() > 10) { + dateLine = dateLine.substring(0, 10).trim(); + } + + date = dateLine; + } + + return date; + } + private List getTags(InputStream in) { List tags = new ArrayList(); List tagsAuthor = getTagsAuthor(in); @@ -128,7 +167,7 @@ class EHentai extends BasicSupport { return tags; } - private String getTitle(InputStream in) throws IOException { + private String getTitle(InputStream in) { String siteName = " - E-Hentai Galleries"; String title = getLine(in, "", 0); @@ -191,21 +230,8 @@ class EHentai extends BasicSupport { } for (int i = 0; i <= last; i++) { - final String key = Integer.toString(i + 1); - final URL value = new URL(source.toString() + "?p=" + i); - urls.add(new Entry<String, URL>() { - public URL setValue(URL value) { - return null; - } - - public URL getValue() { - return value; - } - - public String getKey() { - return key; - } - }); + urls.add(new AbstractMap.SimpleEntry<String, URL>(Integer + .toString(i + 1), new URL(source.toString() + "?p=" + i))); } return urls; @@ -226,9 +252,8 @@ class EHentai extends BasicSupport { try { pages.add(new URL(line)); } catch (MalformedURLException e) { - Instance.syserr(new IOException( - "Parsing error, a link is not correctly parsed: " - + line, e)); + Instance.getInstance().getTraceHandler() + .error(new IOException("Parsing error, a link is not correctly parsed: " + line, e)); } } } @@ -242,7 +267,7 @@ class EHentai extends BasicSupport { StringBuilder builder = new StringBuilder(); for (URL page : pages) { - InputStream pageIn = Instance.getCache().open(page, this, false); + InputStream pageIn = Instance.getInstance().getCache().open(page, this, false); try { String link = getKeyLine(pageIn, "id=\"img\"", "src=\"", "\""); if (link != null && !link.isEmpty()) {