package eu.kanade.tachiyomi.extension.id.mgkomik import eu.kanade.tachiyomi.multisrc.madara.Madara import eu.kanade.tachiyomi.network.interceptor.rateLimit import okhttp3.Headers import okhttp3.OkHttpClient import java.text.SimpleDateFormat import java.util.Locale import java.util.concurrent.TimeUnit import kotlin.random.Random class MGKomik : Madara("MG Komik", "https://mgkomik.id", "id", SimpleDateFormat("dd MMM yy", Locale.US)) { override val client: OkHttpClient = super.client.newBuilder() .rateLimit(20, 5, TimeUnit.SECONDS) .build() override fun headersBuilder(): Headers.Builder = super.headersBuilder() .add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8") .add("Accept-Language", "en-US,en;q=0.9,id;q=0.8") .add("Sec-Fetch-Dest", "document") .add("Sec-Fetch-Mode", "navigate") .add("Sec-Fetch-Site", "same-origin") .add("Sec-Fetch-User", "?1") .add("Upgrade-Insecure-Requests", "1") .add("X-Requested-With", randomString) private fun generateRandomString(length: Int): String { val charset = "HALOGaES.BCDFHIJKMNPQRTUVWXYZ.bcdefghijklmnopqrstuvwxyz0123456789" return (1..length) .map { charset.random() } .joinToString("") } override fun searchPage(page: Int): String = if (page > 1) "page/$page/" else "" private val randomLength = Random.Default.nextInt(13, 21) private val randomString = generateRandomString(randomLength) override val mangaSubString = "komik" override fun searchMangaNextPageSelector() = "a.page.larger" override val chapterUrlSuffix = "" }