package exh.util

import com.elvishew.xlog.XLog
import eu.kanade.tachiyomi.util.asJsoup
import okhttp3.Response
import okhttp3.ResponseBody
import org.jsoup.nodes.Document

fun Response.interceptAsHtml(block: (Document) -> Unit): Response {
    val body = body
    if (body?.contentType()?.type == "text" &&
            body.contentType()?.subtype == "html") {
        val bodyString = body.string()
        val rebuiltResponse = newBuilder()
                .body(ResponseBody.create(body.contentType(), bodyString))
                .build()
        try {
            // Search for captcha
            val parsed = asJsoup(html = bodyString)
            block(parsed)
        } catch (t: Throwable) {
            // Ignore all errors
            XLog.w("Interception error!", t)
        } finally {
            close()
        }

        return rebuiltResponse
    }
    return this
}
