CreepyScans - add query search (#1036)

* CreepyScans - add query search

* Boolean
This commit is contained in:
Mike 2024-02-05 23:47:47 -05:00 committed by Draff
parent 7d94375027
commit 8cf1485c31
2 changed files with 41 additions and 3 deletions

View File

@ -2,15 +2,25 @@ package eu.kanade.tachiyomi.extension.en.creepyscans
import eu.kanade.tachiyomi.multisrc.madara.Madara import eu.kanade.tachiyomi.multisrc.madara.Madara
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.POST
import eu.kanade.tachiyomi.network.asObservableSuccess
import eu.kanade.tachiyomi.network.interceptor.rateLimit import eu.kanade.tachiyomi.network.interceptor.rateLimit
import eu.kanade.tachiyomi.source.model.Filter import eu.kanade.tachiyomi.source.model.Filter
import eu.kanade.tachiyomi.source.model.FilterList import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.model.MangasPage
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga
import kotlinx.serialization.json.boolean
import kotlinx.serialization.json.jsonArray
import kotlinx.serialization.json.jsonObject
import kotlinx.serialization.json.jsonPrimitive
import okhttp3.CacheControl import okhttp3.CacheControl
import okhttp3.FormBody
import okhttp3.HttpUrl.Companion.toHttpUrl import okhttp3.HttpUrl.Companion.toHttpUrl
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.Request import okhttp3.Request
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import rx.Observable
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit
class CreepyScans : Madara( class CreepyScans : Madara(
@ -47,9 +57,37 @@ class CreepyScans : Madara(
// Search // Search
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { override fun fetchSearchManga(
if (query.isNotBlank()) throw Exception("Search not available") page: Int,
query: String,
filters: FilterList,
): Observable<MangasPage> {
return if (query.isNotBlank()) {
val form = FormBody.Builder()
.add("action", "wp-manga-search-manga")
.add("title", query)
.build()
client.newCall(POST("$baseUrl/wp-admin/admin-ajax.php", headers, form)).asObservableSuccess().map { res ->
json.parseToJsonElement(res.body.string()).jsonObject.let { obj ->
if (!obj["success"]!!.jsonPrimitive.boolean) {
MangasPage(emptyList(), false)
} else {
val mangas = obj["data"]!!.jsonArray.map {
SManga.create().apply {
title = it.jsonObject["title"]!!.jsonPrimitive.content
setUrlWithoutDomain(it.jsonObject["url"]!!.jsonPrimitive.content)
}
}
MangasPage(mangas, false)
}
}
}
} else {
super.fetchSearchManga(page, query, filters)
}
}
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
val url = "$baseUrl/$mangaSubString/".toHttpUrl().newBuilder() val url = "$baseUrl/$mangaSubString/".toHttpUrl().newBuilder()
filters.forEach { filter -> filters.forEach { filter ->
when (filter) { when (filter) {

View File

@ -66,7 +66,7 @@ class MadaraGenerator : ThemeSourceGenerator {
SingleLang("Comicz.net v2", "https://v2.comiz.net", "all", isNsfw = true, className = "ComiczNetV2"), SingleLang("Comicz.net v2", "https://v2.comiz.net", "all", isNsfw = true, className = "ComiczNetV2"),
SingleLang("Cookie Kiara", "https://18.kiara.cool", "en", isNsfw = true), SingleLang("Cookie Kiara", "https://18.kiara.cool", "en", isNsfw = true),
SingleLang("CopyPasteScan", "https://copypastescan.xyz", "es", overrideVersionCode = 1), SingleLang("CopyPasteScan", "https://copypastescan.xyz", "es", overrideVersionCode = 1),
SingleLang("CreepyScans", "https://creepyscans.com", "en"), SingleLang("CreepyScans", "https://creepyscans.com", "en", overrideVersionCode = 1),
SingleLang("DapRob", "https://daprob.com", "es"), SingleLang("DapRob", "https://daprob.com", "es"),
SingleLang("Dark Scans", "https://darkscans.com", "en", overrideVersionCode = 1), SingleLang("Dark Scans", "https://darkscans.com", "en", overrideVersionCode = 1),
SingleLang("Dark-scan", "https://dark-scan.com", "en", isNsfw = true, className = "DarkScan"), SingleLang("Dark-scan", "https://dark-scan.com", "en", isNsfw = true, className = "DarkScan"),