GalleryPageUrlParser supports non-strict url

This commit is contained in:
seven332 committed 2018-12-04 21:27:37 +08:00
1 parent 54f1c4806f
commit 7104fddded
2 files changed
+85 -4

No files matched your search

@@ -16,8 +16,8 @@
package com.hippo.ehviewer.client.parser;
import android.support.annotation.Nullable;
import com.hippo.ehviewer.client.EhUrl;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -26,15 +26,25 @@ import java.util.regex.Pattern;
*/
public final class GalleryPageUrlParser {
public static final Pattern URL_PATTERN = Pattern.compile("https?://(?:" +
EhUrl.DOMAIN_EX + "|" + EhUrl.DOMAIN_E + "|" + EhUrl.DOMAIN_LOFI + ")/s/(\\w+)/(\\d+)-(\\d+)");
private static final Pattern URL_STRICT_PATTERN = Pattern.compile(
"https?://(?:" + EhUrl.DOMAIN_EX + "|" + EhUrl.DOMAIN_E + "|" + EhUrl.DOMAIN_LOFI + ")/s/([0-9a-f]{10})/(\\d+)-(\\d+)");
private static final Pattern URL_PATTERN = Pattern.compile(
"([0-9a-f]{10})/(\\d+)-(\\d+)");
@Nullable
public static Result parse(String url) {
return parse(url, true);
}
@Nullable
public static Result parse(String url, boolean strict) {
if (url == null) {
return null;
}
Matcher m = URL_PATTERN.matcher(url);
Pattern pattern = strict ? URL_STRICT_PATTERN : URL_PATTERN;
Matcher m = pattern.matcher(url);
if (m.find()) {
Result result = new Result();
result.gid = Long.parseLong(m.group(2));