package be.nikiroo.fanfix.library;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+
class WebLibraryUrls {
static public final String INDEX_URL = "/";
static public final String LOGOUT_URL = "/logout";
+ static public final String EXIT_URL = "/exit";
+
static private final String VIEWER_URL_BASE = "/view/story/";
static private final String VIEWER_URL = VIEWER_URL_BASE
+ "{luid}/{chap}/{para}";
+ "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) //
.replace("{luid}", luid);
}
- static public boolean isSupportedUrl(String url) {
- return INDEX_URL.equals(url) || VERSION_URL.equals(url)
- || LOGOUT_URL.equals(url) || isViewUrl(url) || isStoryUrl(url)
- || isListUrl(url) || isCoverUrl(url) || isImprtUrl(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) {
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) {
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;
+ }
+ }
}