X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=library%2FWebLibraryUrls.java;h=5d628e023d33e47b92542ff9c4273614864c7d33;hb=bb7d9ea97cc614a04dd45f342a4caeeb7dcb23fe;hp=c02fc382341481ed9c8a95a74a16faf13544648b;hpb=6d465e886ae46c9da99117cc4302948f700a51c4;p=fanfix.git diff --git a/library/WebLibraryUrls.java b/library/WebLibraryUrls.java index c02fc38..5d628e0 100644 --- a/library/WebLibraryUrls.java +++ b/library/WebLibraryUrls.java @@ -1,5 +1,8 @@ package be.nikiroo.fanfix.library; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + class WebLibraryUrls { static public final String INDEX_URL = "/"; @@ -52,7 +55,7 @@ class WebLibraryUrls { + "author/{author}"; static private final String COVER_URL_SOURCE = COVER_URL_BASE + "source/{source}"; - + static public String getViewUrl(String luid, Integer chap, Integer para) { return VIEWER_URL // .replace("{luid}", luid) // @@ -103,11 +106,16 @@ class WebLibraryUrls { .replace("{luid}", luid); } - static public boolean isSupportedUrl(String url) { - return INDEX_URL.equals(url) || VERSION_URL.equals(url) - || LOGOUT_URL.equals(url) || EXIT_URL.equals(url) - || isViewUrl(url) || isStoryUrl(url) || isListUrl(url) - || isCoverUrl(url) || isImprtUrl(url) || isDeleteUrl(url); + static public boolean isSupportedUrl(String url, + boolean requiresLoginOnly) { + if (requiresLoginOnly) { + return INDEX_URL.equals(url) || LOGOUT_URL.equals(url) + || EXIT_URL.equals(url) || isViewUrl(url) || isStoryUrl(url) + || isListUrl(url) || isCoverUrl(url) || isImprtUrl(url) + || isDeleteUrl(url); + } + + return isSupportedUrl(url, true) || VERSION_URL.equals(url); } static public String getCoverUrlStory(String luid) { @@ -117,12 +125,12 @@ class WebLibraryUrls { static public String getCoverUrlSource(String source) { return COVER_URL_SOURCE // - .replace("{source}", source); + .replace("{source}", url(source)); } static public String getCoverUrlAuthor(String author) { return COVER_URL_AUTHOR // - .replace("{author}", author); + .replace("{author}", url(author)); } static public String getDeleteUrlStory(String luid) { @@ -153,4 +161,14 @@ class WebLibraryUrls { static public boolean isDeleteUrl(String url) { return url != null && url.startsWith(DELETE_URL_BASE); } + + static private String url(String value) { + try { + return URLEncoder.encode(value, "UTF-8"); + } catch (UnsupportedEncodingException e) { + // UTF-8 is always supported + e.printStackTrace(); + return value; + } + } }