Ngomik: Fix search & filter issue (#14124)

Closes #14094
This commit is contained in:
Luqman 2022-11-05 03:05:48 +07:00 committed by GitHub
parent 45b5e362c7
commit 268b4cb4d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 56 additions and 4 deletions

View File

@ -1,11 +1,63 @@
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") {
class Ngomik : MangaThemesia("Ngomik", "https://ngomik.net", "id", "/all-komik") {
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)

View File

@ -304,9 +304,9 @@ abstract class MangaThemesia(
}
// Filters
private class AuthorFilter : Filter.Text("Author")
protected class AuthorFilter : Filter.Text("Author")
private class YearFilter : Filter.Text("Year")
protected class YearFilter : Filter.Text("Year")
open class SelectFilter(
displayName: String,

View File

@ -77,7 +77,7 @@ class MangaThemesiaGenerator : ThemeSourceGenerator {
SingleLang("Mihentai", "https://mihentai.com", "all", isNsfw = true, overrideVersionCode = 2),
SingleLang("Mode Scanlator", "https://modescanlator.com", "pt-BR", overrideVersionCode = 8),
SingleLang("Nekomik", "https://nekomik.com", "id"),
SingleLang("Ngomik", "https://ngomik.net", "id", overrideVersionCode = 1),
SingleLang("Ngomik", "https://ngomik.net", "id", overrideVersionCode = 2),
SingleLang("NIGHT SCANS", "https://nightscans.org", "en", isNsfw = true, className = "NightScans"),
SingleLang("Nocturnal Scans", "https://nocturnalscans.com", "en", overrideVersionCode = 1),
SingleLang("Omega Scans", "https://omegascans.org", "en", isNsfw = true),