X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Fsupported%2FE621.java;h=dfa9e5ed6a60e4694fc8494dcf196b4328259ee6;hb=727108fef9dcc661d45fa69ebf8b76f5128a2b6f;hp=aa9c8af1ee26690cdd86429a911d2b1b7a2d9fa3;hpb=14d8be1cd85d6bdd023569c5cae17482f318c0cd;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/supported/E621.java b/src/be/nikiroo/fanfix/supported/E621.java index aa9c8af..dfa9e5e 100644 --- a/src/be/nikiroo/fanfix/supported/E621.java +++ b/src/be/nikiroo/fanfix/supported/E621.java @@ -33,11 +33,6 @@ import be.nikiroo.utils.StringUtils; * @author niki */ class E621 extends BasicSupport_Deprecated { - @Override - public String getSourceName() { - return "e621.net"; - } - @Override protected MetaData getMeta(URL source, InputStream in) throws IOException { MetaData meta = new MetaData(); @@ -46,9 +41,9 @@ class E621 extends BasicSupport_Deprecated { meta.setAuthor(getAuthor(source, reset(in))); meta.setDate(""); meta.setTags(getTags(source, reset(in), false)); - meta.setSource(getSourceName()); + meta.setSource(getType().getSourceName()); meta.setUrl(source.toString()); - meta.setPublisher(getSourceName()); + meta.setPublisher(getType().getSourceName()); meta.setUuid(source.toString()); meta.setLuid(""); meta.setLang("en"); @@ -377,19 +372,28 @@ class E621 extends BasicSupport_Deprecated { protected URL getCanonicalUrl(URL source) { if (isSearch(source)) { // /post?tags=tag1+tag2 -> ../post/index/1/tag1%32tag2 - String key = "post?tags="; + String key = "?tags="; if (source.toString().contains(key)) { int pos = source.toString().indexOf(key); String tags = source.toString().substring(pos + key.length()); tags = tags.replace("+", "%20"); + + String base = source.toString().substring(0, pos); + if (!base.endsWith("/")) { + base += "/"; + } + if (base.endsWith("/search/")) { + base = base.substring(0, base.indexOf("/search/") + 1); + } + try { - return new URL(source.toString().substring(0, pos) - + "post/index/1/" + tags); + return new URL(base + "index/1/" + tags); } catch (MalformedURLException e) { Instance.getTraceHandler().error(e); } } } + return super.getCanonicalUrl(source); }