diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/es/TuMangaOnlineParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/es/TuMangaOnlineParser.kt index 74a29b1a..af4f1694 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/es/TuMangaOnlineParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/es/TuMangaOnlineParser.kt @@ -210,7 +210,7 @@ class TuMangaOnlineParser(context: MangaLoaderContext) : PagedMangaParser( if (script1 != null) { val data = script1.data() - val regexParams = """\{uniqid:'(.+)',cascade:(.+)\}""".toRegex() + val regexParams = """\{uniqid:\s*'(\S+)',\s*cascade:\s*(\S+)}""".toRegex() val regexAction = """form\.action\s?=\s?'(.+)'""".toRegex() val params = regexParams.find(data)!! val action = regexAction.find(data)!!.groupValues[1].toHttpUrl() diff --git a/src/test/kotlin/org/koitharu/kotatsu/parsers/MangaLoaderContextMock.kt b/src/test/kotlin/org/koitharu/kotatsu/parsers/MangaLoaderContextMock.kt index 983cf396..111687d7 100644 --- a/src/test/kotlin/org/koitharu/kotatsu/parsers/MangaLoaderContextMock.kt +++ b/src/test/kotlin/org/koitharu/kotatsu/parsers/MangaLoaderContextMock.kt @@ -7,7 +7,12 @@ import okhttp3.Response import org.koitharu.kotatsu.parsers.config.MangaSourceConfig import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.util.await +import java.security.SecureRandom +import java.security.cert.X509Certificate import java.util.concurrent.TimeUnit +import javax.net.ssl.SSLContext +import javax.net.ssl.SSLSocketFactory +import javax.net.ssl.X509TrustManager internal object MangaLoaderContextMock : MangaLoaderContext() { @@ -15,6 +20,7 @@ internal object MangaLoaderContextMock : MangaLoaderContext() { override val httpClient: OkHttpClient = OkHttpClient.Builder() .cookieJar(cookieJar) + .permissiveSSL() .addInterceptor(CommonHeadersInterceptor()) .addInterceptor(CloudFlareInterceptor()) .connectTimeout(20, TimeUnit.SECONDS) @@ -52,4 +58,24 @@ internal object MangaLoaderContextMock : MangaLoaderContext() { cookieJar.loadFromStream(it) } ?: println("No cookies loaded!") } + + private fun OkHttpClient.Builder.permissiveSSL() = also { builder -> + runCatching { + val trustAllCerts = object : X509TrustManager { + override fun checkClientTrusted(chain: Array, authType: String) = Unit + + override fun checkServerTrusted(chain: Array, authType: String) = Unit + + override fun getAcceptedIssuers(): Array = emptyArray() + } + val sslContext = SSLContext.getInstance("SSL") + sslContext.init(null, arrayOf(trustAllCerts), SecureRandom()) + val sslSocketFactory: SSLSocketFactory = sslContext.socketFactory + builder.sslSocketFactory(sslSocketFactory, trustAllCerts) + builder.hostnameVerifier { _, _ -> true } + }.onFailure { + it.printStackTrace() + } + } + }