Tachiyomi-Extensions/multisrc/overrides/mmrcms/gekkouscan/src/GekkouScans.kt

58 lines
1.8 KiB
Kotlin

package eu.kanade.tachiyomi.extension.pt.gekkouscan
import eu.kanade.tachiyomi.multisrc.mmrcms.MMRCMS
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.interceptor.rateLimit
import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.util.asJsoup
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.Response
import java.util.concurrent.TimeUnit
class GekkouScans : MMRCMS(
"Gekkou Scans",
"https://gekkou.com.br",
"pt-BR"
) {
override val client: OkHttpClient = super.client.newBuilder()
.rateLimit(1, 2, TimeUnit.SECONDS)
.build()
override fun chapterListParse(response: Response): List<SChapter> {
val document = response.asJsoup()
val chapters = document.select(chapterListSelector())
.mapNotNull(::nullableChapterFromElement)
val isExternal = document
.select("ul.domaintld > li.li:has(a[href*='hentai.gekkouscans.com.br'])")
.firstOrNull() != null
if (chapters.isEmpty() && isExternal) {
throw Exception(EXTERNAL_SERIES_ERROR)
}
return chapters
}
override fun chapterListSelector() = "ul.domaintld > li.li:has(a[href^='$baseUrl'])"
override fun imageRequest(page: Page): Request {
val newHeaders = headersBuilder()
.add("Accept", ACCEPT_IMAGE)
.add("Referer", page.url)
.build()
return GET(page.imageUrl!!, newHeaders)
}
companion object {
private const val ACCEPT_IMAGE = "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8"
private const val EXTERNAL_SERIES_ERROR =
"Migre esta série para a extensão Gekkou Hentai para continuar lendo."
}
}