X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Fsupported%2FYiffStar.java;h=2996ce993770993d18460bcfe4b10c9ddcb8e470;hb=276f95c6ca9a79d2fc6879877b240cefb4ceb598;hp=0e24714c83cc806fb139bc64243e296229272509;hpb=13285ff8473a4092bddeed74c953f358ba1671d6;p=nikiroo-utils.git diff --git a/src/be/nikiroo/fanfix/supported/YiffStar.java b/src/be/nikiroo/fanfix/supported/YiffStar.java index 0e24714..2996ce9 100644 --- a/src/be/nikiroo/fanfix/supported/YiffStar.java +++ b/src/be/nikiroo/fanfix/supported/YiffStar.java @@ -1,6 +1,5 @@ package be.nikiroo.fanfix.supported; -import java.awt.image.BufferedImage; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; @@ -15,6 +14,8 @@ import java.util.Scanner; import be.nikiroo.fanfix.Instance; import be.nikiroo.fanfix.bundles.Config; import be.nikiroo.fanfix.data.MetaData; +import be.nikiroo.utils.Image; +import be.nikiroo.utils.Progress; import be.nikiroo.utils.StringUtils; /** @@ -23,7 +24,7 @@ import be.nikiroo.utils.StringUtils; * * @author niki */ -class YiffStar extends BasicSupport { +class YiffStar extends BasicSupport_Deprecated { @Override public String getSourceName() { @@ -35,7 +36,7 @@ class YiffStar extends BasicSupport { MetaData meta = new MetaData(); meta.setTitle(getTitle(reset(in))); - meta.setAuthor(getAuthor(source, reset(in))); + meta.setAuthor(getAuthor(reset(in))); meta.setDate(""); meta.setTags(getTags(reset(in))); meta.setSource(getSourceName()); @@ -43,7 +44,7 @@ class YiffStar extends BasicSupport { meta.setPublisher(getSourceName()); meta.setUuid(source.toString()); meta.setLuid(""); - meta.setLang("EN"); + meta.setLang("en"); meta.setSubject("Furry"); meta.setType(getType().toString()); meta.setImageDocument(false); @@ -87,24 +88,28 @@ class YiffStar extends BasicSupport { // logged in Instance.getCache() .openNoCache(new URL("https://www.sofurry.com/user/login"), - this, post).close(); + this, post, null, null).close(); } } @Override - public URL getCanonicalUrl(URL source) throws IOException { - if (source.getPath().startsWith("/view")) { - source = new URL(source.toString() + "/guest"); - InputStream in = Instance.getCache().open(source, this, false); - String line = getLine(in, "/browse/folder/", 0); - if (line != null) { - String[] tab = line.split("\""); - if (tab.length > 1) { - String groupUrl = source.getProtocol() + "://" - + source.getHost() + tab[1]; - return guest(groupUrl); + public URL getCanonicalUrl(URL source) { + try { + if (source.getPath().startsWith("/view")) { + source = new URL(source.toString() + "/guest"); + InputStream in = Instance.getCache().open(source, this, false); + String line = getLine(in, "/browse/folder/", 0); + if (line != null) { + String[] tab = line.split("\""); + if (tab.length > 1) { + String groupUrl = source.getProtocol() + "://" + + source.getHost() + tab[1]; + return guest(groupUrl); + } } } + } catch (Exception e) { + Instance.getTraceHandler().error(e); } return super.getCanonicalUrl(source); @@ -127,10 +132,9 @@ class YiffStar extends BasicSupport { return tags; } - private BufferedImage getCover(URL source, InputStream in) - throws IOException { + private Image getCover(URL source, InputStream in) throws IOException { - List> chaps = getChapters(source, in); + List> chaps = getChapters(source, in, null); if (!chaps.isEmpty()) { in = Instance.getCache().open(chaps.get(0).getValue(), this, true); String line = getLine(in, " name=\"og:image\"", 0); @@ -158,7 +162,7 @@ class YiffStar extends BasicSupport { return null; } - private String getAuthor(URL source, InputStream in) throws IOException { + private String getAuthor(InputStream in) { String author = getLine(in, "class=\"onlinestatus", 0); if (author != null) { return StringUtils.unhtml(author).trim(); @@ -167,7 +171,7 @@ class YiffStar extends BasicSupport { return null; } - private String getTitle(InputStream in) throws IOException { + private String getTitle(InputStream in) { String title = getLine(in, "class=\"sflabel pagetitle", 0); if (title != null) { if (title.contains("(series)")) { @@ -185,8 +189,8 @@ class YiffStar extends BasicSupport { } @Override - protected List> getChapters(URL source, InputStream in) - throws IOException { + protected List> getChapters(URL source, InputStream in, + Progress pg) throws IOException { List> urls = new ArrayList>(); @SuppressWarnings("resource") @@ -205,14 +209,17 @@ class YiffStar extends BasicSupport { final URL value = guest(link); final String key = StringUtils.unhtml(line).trim(); urls.add(new Entry() { + @Override public URL setValue(URL value) { return null; } + @Override public URL getValue() { return value; } + @Override public String getKey() { return key; } @@ -225,8 +232,8 @@ class YiffStar extends BasicSupport { } @Override - protected String getChapterContent(URL source, InputStream in, int number) - throws IOException { + protected String getChapterContent(URL source, InputStream in, int number, + Progress pg) throws IOException { StringBuilder builder = new StringBuilder(); String startAt = "id=\"sfContentBody"; @@ -247,7 +254,7 @@ class YiffStar extends BasicSupport { if (ok) { builder.append(line); - builder.append('\n'); + builder.append(' '); } } @@ -264,16 +271,17 @@ class YiffStar extends BasicSupport { * @return the {@link URL} * * @throws MalformedURLException + * in case of data error */ private URL guest(String link) throws MalformedURLException { if (link.contains("?")) { if (link.contains("/?")) { return new URL(link.replace("?", "guest?")); - } else { - return new URL(link.replace("?", "/guest?")); } - } else { - return new URL(link + "/guest"); + + return new URL(link.replace("?", "/guest?")); } + + return new URL(link + "/guest"); } }