[TuMangaOnline] Fix pages parsing

This commit is contained in:
2024-03-09 11:22:30 +02:00
parent b1fb1bdc6b
commit 20685598e3
2 changed files with 27 additions and 1 deletions

View File

@@ -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()

View File

@@ -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<X509Certificate>, authType: String) = Unit
override fun checkServerTrusted(chain: Array<X509Certificate>, authType: String) = Unit
override fun getAcceptedIssuers(): Array<X509Certificate> = 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()
}
}
}