X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Fsupported%2FE621.java;h=36b9dad3c9bf3520053e938539a9db149e134695;hb=9948521df6779543a26fd260994d5b9029d1eab5;hp=d6cbad40744743f27550e66b8f3357caa1be2591;hpb=9b863b20370118c95c6801b73dda951c7e507871;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/supported/E621.java b/src/be/nikiroo/fanfix/supported/E621.java index d6cbad4..36b9dad 100644 --- a/src/be/nikiroo/fanfix/supported/E621.java +++ b/src/be/nikiroo/fanfix/supported/E621.java @@ -6,14 +6,11 @@ import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; import java.net.URLDecoder; -import java.net.URLEncoder; import java.util.AbstractMap; import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; import java.util.LinkedList; import java.util.List; -import java.util.AbstractMap.SimpleEntry; import java.util.Map.Entry; import java.util.Scanner; @@ -380,19 +377,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("+", "%32"); + 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); } @@ -402,7 +408,7 @@ class E621 extends BasicSupport_Deprecated { private boolean isSearch(URL url) { return url.getPath().startsWith("/post/index/") - || (url.getPath().equals("/post") && url.getQuery().startsWith( - "tags=")); + || (url.getPath().equals("/post/search") && url.getQuery() + .startsWith("tags=")); } }