Convert GalleryPageUrlParser to kotlin
This commit is contained in:
1 parent
e9699abc81
commit
09a403cb53
1 file changed
+23
-43
@@ -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)
|
||||
}
|
||||
Reference in new issue
Block a user