|
|
|
@ -15,17 +15,23 @@ import org.koitharu.kotatsu.parsers.network.UserAgents
|
|
|
|
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
|
|
|
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
|
|
|
import org.koitharu.kotatsu.parsers.util.*
|
|
|
|
import org.koitharu.kotatsu.parsers.util.*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private const val F_URL = "fullUrl="
|
|
|
|
|
|
|
|
|
|
|
|
@MangaSourceParser("MADARADEX", "MadaraDex", "en", ContentType.HENTAI)
|
|
|
|
@MangaSourceParser("MADARADEX", "MadaraDex", "en", ContentType.HENTAI)
|
|
|
|
internal class MadaraDex(context: MangaLoaderContext) :
|
|
|
|
internal class MadaraDex(context: MangaLoaderContext) :
|
|
|
|
MadaraParser(context, MangaParserSource.MADARADEX, "madaradex.org") {
|
|
|
|
MadaraParser(context, MangaParserSource.MADARADEX, "madaradex.org") {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
init {
|
|
|
|
|
|
|
|
context.cookieJar.insertCookies(domain, "wpmanga-adault=1")
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
override fun onCreateConfig(keys: MutableCollection<ConfigKey<*>>) {
|
|
|
|
override fun onCreateConfig(keys: MutableCollection<ConfigKey<*>>) {
|
|
|
|
super.onCreateConfig(keys)
|
|
|
|
super.onCreateConfig(keys)
|
|
|
|
keys.remove(userAgentKey)
|
|
|
|
keys.remove(userAgentKey)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
override fun getRequestHeaders() = super.getRequestHeaders().newBuilder()
|
|
|
|
override fun getRequestHeaders() = super.getRequestHeaders().newBuilder()
|
|
|
|
.add("sec-fetch-site", "same-site")
|
|
|
|
.set("User-Agent", UserAgents.CHROME_DESKTOP)
|
|
|
|
.build()
|
|
|
|
.build()
|
|
|
|
|
|
|
|
|
|
|
|
override val authUrl: String
|
|
|
|
override val authUrl: String
|
|
|
|
@ -66,14 +72,12 @@ internal class MadaraDex(context: MangaLoaderContext) :
|
|
|
|
override fun intercept(chain: Interceptor.Chain): Response {
|
|
|
|
override fun intercept(chain: Interceptor.Chain): Response {
|
|
|
|
val request = chain.request()
|
|
|
|
val request = chain.request()
|
|
|
|
val url = request.url
|
|
|
|
val url = request.url
|
|
|
|
val fullUrl = url.fragment?.substringAfter(F_URL)
|
|
|
|
val fullUrl = url.fragment?.substringAfter(F_URL, "")
|
|
|
|
return if (!fullUrl.isNullOrEmpty()) {
|
|
|
|
return if (!fullUrl.isNullOrEmpty()) {
|
|
|
|
|
|
|
|
copyCookies()
|
|
|
|
val cleanUrl = url.newBuilder().fragment(null).toString()
|
|
|
|
val cleanUrl = url.newBuilder().fragment(null).toString()
|
|
|
|
val newReq = request.newBuilder()
|
|
|
|
val newReq = request.newBuilder()
|
|
|
|
.header("sec-fetch-site", "same-site")
|
|
|
|
|
|
|
|
.header("Referer", fullUrl)
|
|
|
|
.header("Referer", fullUrl)
|
|
|
|
.header("User-Agent", UserAgents.CHROME_DESKTOP)
|
|
|
|
|
|
|
|
.header("Cookie", context.cookieJar.getCookies(fullUrl).toString())
|
|
|
|
|
|
|
|
.url(cleanUrl)
|
|
|
|
.url(cleanUrl)
|
|
|
|
.build()
|
|
|
|
.build()
|
|
|
|
chain.proceed(newReq)
|
|
|
|
chain.proceed(newReq)
|
|
|
|
@ -82,7 +86,5 @@ internal class MadaraDex(context: MangaLoaderContext) :
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private companion object {
|
|
|
|
private fun copyCookies() = context.cookieJar.copyCookies(domain, "cdn.$domain")
|
|
|
|
const val F_URL = "fullUrl="
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|