33 lines
877 B
Kotlin
33 lines
877 B
Kotlin
package exh.util
|
|
|
|
import eu.kanade.tachiyomi.util.asJsoup
|
|
import exh.log.xLogW
|
|
import okhttp3.Response
|
|
import okhttp3.ResponseBody.Companion.toResponseBody
|
|
import org.jsoup.nodes.Document
|
|
|
|
fun Response.interceptAsHtml(block: (Document) -> Unit): Response {
|
|
return if (body.contentType()?.type == "text" &&
|
|
body.contentType()?.subtype == "html"
|
|
) {
|
|
val bodyString = body.string()
|
|
val rebuiltResponse = newBuilder()
|
|
.body(bodyString.toResponseBody(body.contentType()))
|
|
.build()
|
|
try {
|
|
// Search for captcha
|
|
val parsed = asJsoup(html = bodyString)
|
|
block(parsed)
|
|
} catch (t: Throwable) {
|
|
// Ignore all errors
|
|
xLogW("Interception error!", t)
|
|
} finally {
|
|
close()
|
|
}
|
|
|
|
rebuiltResponse
|
|
} else {
|
|
this
|
|
}
|
|
}
|