From 09a403cb5349246a8cdc5b9f6cee7137044f533b Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Sun, 2 Apr 2023 17:06:21 +0800 Subject: [PATCH] Convert GalleryPageUrlParser to kotlin --- .../client/parser/GalleryPageUrlParser.kt | 66 +++++++------------ 1 file changed, 23 insertions(+), 43 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryPageUrlParser.kt b/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryPageUrlParser.kt index dbdf8dc79..08ae34ca4 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryPageUrlParser.kt +++ b/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryPageUrlParser.kt @@ -13,58 +13,38 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +package com.hippo.ehviewer.client.parser -package com.hippo.ehviewer.client.parser; - -import androidx.annotation.Nullable; - -import com.hippo.ehviewer.client.EhUrl; -import com.hippo.yorozuya.NumberUtils; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; +import com.hippo.ehviewer.client.EhUrl +import com.hippo.yorozuya.NumberUtils +import java.util.regex.Pattern /** * Like http://exhentai.org/s/91ea4b6d89/901103-12 */ -public final class GalleryPageUrlParser { +object GalleryPageUrlParser { + private val URL_STRICT_PATTERN = Pattern.compile( + "https?://(?:" + EhUrl.DOMAIN_EX + "|" + EhUrl.DOMAIN_E + "|" + EhUrl.DOMAIN_LOFI + ")/s/([0-9a-f]{10})/(\\d+)-(\\d+)", + ) + private val URL_PATTERN = Pattern.compile("([0-9a-f]{10})/(\\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; - } - - Pattern pattern = strict ? URL_STRICT_PATTERN : URL_PATTERN; - Matcher m = pattern.matcher(url); - if (m.find()) { - Result result = new Result(); - result.gid = NumberUtils.parseLongSafely(m.group(2), -1L); - result.pToken = m.group(1); - result.page = NumberUtils.parseIntSafely(m.group(3), 0) - 1; - if (result.gid < 0 || result.page < 0) { - return null; + fun parse(url: String?, strict: Boolean = true): Result? { + url ?: return null + val pattern = if (strict) URL_STRICT_PATTERN else URL_PATTERN + val m = pattern.matcher(url) + return if (m.find()) { + val gid = NumberUtils.parseLongSafely(m.group(2), -1L) + val pToken = m.group(1)!! + val page = NumberUtils.parseIntSafely(m.group(3), 0) - 1 + if (gid < 0 || page < 0) { + null + } else { + Result(gid, pToken, page) } - return result; } else { - return null; + null } } - public static class Result { - public long gid; - public String pToken; - public int page; - } + class Result(val gid: Long, val pToken: String, val page: Int) }