@@ -7,15 +7,20 @@ import androidx.preference.PreferenceScreen
77import androidx.preference.SwitchPreferenceCompat
88import eu.kanade.tachiyomi.multisrc.madara.Madara
99import eu.kanade.tachiyomi.network.GET
10+ import eu.kanade.tachiyomi.network.POST
1011import eu.kanade.tachiyomi.network.interceptor.rateLimitHost
1112import eu.kanade.tachiyomi.source.ConfigurableSource
13+ import eu.kanade.tachiyomi.source.model.Page
1214import eu.kanade.tachiyomi.source.model.SChapter
1315import eu.kanade.tachiyomi.source.model.SManga
16+ import eu.kanade.tachiyomi.util.asJsoup
1417import keiyoushi.utils.getPreferences
1518import kotlinx.serialization.json.jsonArray
1619import kotlinx.serialization.json.jsonObject
1720import kotlinx.serialization.json.jsonPrimitive
21+ import okhttp3.FormBody
1822import okhttp3.HttpUrl.Companion.toHttpUrl
23+ import org.jsoup.nodes.Document
1924import org.jsoup.nodes.Element
2025import java.text.SimpleDateFormat
2126import java.util.Locale
@@ -125,6 +130,27 @@ class TempleScanEsp :
125130 setUrlWithoutDomain(element.selectFirst(" a" )!! .attr(" href" ))
126131 }
127132
133+ override fun pageListParse (document : Document ): List <Page > {
134+ val form = document.selectFirst(" form#redirect-form[method=post]" )
135+ ? : return super .pageListParse(document)
136+
137+ val url = form.attr(" action" )
138+
139+ val headers = headersBuilder()
140+ .set(" Referer" , document.location())
141+ .build()
142+
143+ val body = FormBody .Builder ().apply {
144+ form.select(" input[name]" ).forEach {
145+ add(it.attr(" name" ), it.attr(" value" ))
146+ }
147+ }.build()
148+
149+ val redirectedDoc = client.newCall(POST (url, headers, body)).execute().asJsoup()
150+
151+ return super .pageListParse(redirectedDoc)
152+ }
153+
128154 private fun Element.imageFromStyle (): String {
129155 return this .attr(" style" ).substringAfter(" url(" ).substringBefore(" )" )
130156 }
0 commit comments