package eu.kanade.tachiyomi.extension.id.cosmicscansid import eu.kanade.tachiyomi.multisrc.mangathemesia.MangaThemesia import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.interceptor.rateLimit import eu.kanade.tachiyomi.source.model.Filter import eu.kanade.tachiyomi.source.model.FilterList import okhttp3.HttpUrl.Companion.toHttpUrl import okhttp3.OkHttpClient import okhttp3.Request import java.util.concurrent.TimeUnit class CosmicScansID : MangaThemesia("CosmicScans.id", "https://cosmicscans.id", "id", "/semua-komik") { override val client: OkHttpClient = super.client.newBuilder() .rateLimit(20, 4, TimeUnit.SECONDS) .build() override val hasProjectPage = true override val projectPageString = "/semua-komik" // search override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { val url = baseUrl.toHttpUrl().newBuilder() .addPathSegments("page/$page/") .addQueryParameter("s", query) filters.forEach { filter -> when (filter) { // if site has project page, default value "hasProjectPage" = false is ProjectFilter -> { if (filter.selectedValue() == "project-filter-on") { url.setPathSegment(0, projectPageString.substring(1)) } } else -> { /* Do Nothing */ } } } return GET(url.toString()) } override fun getFilterList(): FilterList { val filters = mutableListOf>( Filter.Separator(), Filter.Header("$name Project List page"), ProjectFilter(), OrderByFilter(), ) return FilterList(filters) } // manga details override val seriesDescriptionSelector = ".entry-content[itemprop=description] :not(a,p:has(a))" // pages override val pageSelector = "div#readerarea img:not(noscript img)" }