69 lines
2.6 KiB
Kotlin
69 lines
2.6 KiB
Kotlin
package eu.kanade.tachiyomi.extension.id.ngomik
|
|
|
|
import eu.kanade.tachiyomi.multisrc.mangathemesia.MangaThemesia
|
|
import eu.kanade.tachiyomi.network.GET
|
|
import eu.kanade.tachiyomi.source.model.Filter
|
|
import eu.kanade.tachiyomi.source.model.FilterList
|
|
import okhttp3.Headers
|
|
import okhttp3.HttpUrl.Companion.toHttpUrl
|
|
import okhttp3.Request
|
|
|
|
class Ngomik : MangaThemesia("Ngomik", "https://ngomik.net", "id", "/manga") {
|
|
|
|
private val userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36"
|
|
|
|
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
|
|
val url = baseUrl.toHttpUrl().newBuilder()
|
|
.addPathSegment(mangaUrlDirectory.substring(1))
|
|
.addQueryParameter("page", page.toString())
|
|
|
|
if (query.isNullOrBlank().not()) {
|
|
url.addQueryParameter("title", query)
|
|
}
|
|
|
|
filters.forEach { filter ->
|
|
when (filter) {
|
|
is AuthorFilter -> {
|
|
url.addQueryParameter("author", filter.state)
|
|
}
|
|
is YearFilter -> {
|
|
url.addQueryParameter("yearx", filter.state)
|
|
}
|
|
is StatusFilter -> {
|
|
url.addQueryParameter("status", filter.selectedValue())
|
|
}
|
|
is TypeFilter -> {
|
|
url.addQueryParameter("type", filter.selectedValue())
|
|
}
|
|
is OrderByFilter -> {
|
|
url.addQueryParameter("order", filter.selectedValue())
|
|
}
|
|
is GenreListFilter -> {
|
|
filter.state
|
|
.filter { it.state != Filter.TriState.STATE_IGNORE }
|
|
.forEach {
|
|
val value = if (it.state == Filter.TriState.STATE_EXCLUDE) "-${it.value}" else it.value
|
|
url.addQueryParameter("genre[]", value)
|
|
}
|
|
}
|
|
// 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 headersBuilder(): Headers.Builder = Headers.Builder()
|
|
.add("User-Agent", userAgent)
|
|
.add("Referer", baseUrl)
|
|
|
|
override val projectPageString = "/pj"
|
|
|
|
override val hasProjectPage = true
|
|
}
|