From 17d6151584fed0ba91aa9374c0ecc5dbf7ddb2eb Mon Sep 17 00:00:00 2001 From: AwkwardPeak7 <48650614+AwkwardPeak7@users.noreply.github.com> Date: Sat, 12 Apr 2025 11:40:32 +0500 Subject: [PATCH] BatCave: add referer (#8440) --- src/en/batcave/build.gradle | 2 +- .../tachiyomi/extension/en/batcave/BatCave.kt | 32 ++++++------------- 2 files changed, 11 insertions(+), 23 deletions(-) diff --git a/src/en/batcave/build.gradle b/src/en/batcave/build.gradle index 7f163a37e..bff40d276 100644 --- a/src/en/batcave/build.gradle +++ b/src/en/batcave/build.gradle @@ -1,7 +1,7 @@ ext { extName = 'BatCave' extClass = '.BatCave' - extVersionCode = 2 + extVersionCode = 3 } apply from: "$rootDir/common.gradle" diff --git a/src/en/batcave/src/eu/kanade/tachiyomi/extension/en/batcave/BatCave.kt b/src/en/batcave/src/eu/kanade/tachiyomi/extension/en/batcave/BatCave.kt index f9f5791fb..0650d85fe 100644 --- a/src/en/batcave/src/eu/kanade/tachiyomi/extension/en/batcave/BatCave.kt +++ b/src/en/batcave/src/eu/kanade/tachiyomi/extension/en/batcave/BatCave.kt @@ -11,16 +11,15 @@ import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.util.asJsoup +import keiyoushi.utils.firstInstanceOrNull +import keiyoushi.utils.parseAs +import keiyoushi.utils.tryParse import kotlinx.serialization.SerializationException -import kotlinx.serialization.decodeFromString -import kotlinx.serialization.json.Json import okhttp3.FormBody import okhttp3.HttpUrl.Companion.toHttpUrl import okhttp3.Request import okhttp3.Response import org.jsoup.nodes.Document -import uy.kohesive.injekt.injectLazy -import java.text.ParseException import java.text.SimpleDateFormat import java.util.Locale @@ -31,7 +30,8 @@ class BatCave : HttpSource() { override val supportsLatest = true override val baseUrl = "https://batcave.biz" - private val json: Json by injectLazy() + override fun headersBuilder() = super.headersBuilder() + .add("Referer", "$baseUrl/") override fun popularMangaRequest(page: Int) = searchMangaRequest(page, "", SortFilter.POPULAR) override fun popularMangaParse(response: Response) = searchMangaParse(response) @@ -54,11 +54,11 @@ class BatCave : HttpSource() { var filtersApplied = false val url = "$baseUrl/comix/".toHttpUrl().newBuilder().apply { - filters.get()?.addFilterToUrl(this) + filters.firstInstanceOrNull()?.addFilterToUrl(this) ?.also { filtersApplied = it } - filters.get()?.addFilterToUrl(this) + filters.firstInstanceOrNull()?.addFilterToUrl(this) ?.also { filtersApplied = filtersApplied || it } - filters.get()?.addFilterToUrl(this) + filters.firstInstanceOrNull()?.addFilterToUrl(this) ?.also { filtersApplied = filtersApplied || it } if (filtersApplied) { @@ -69,7 +69,7 @@ class BatCave : HttpSource() { } }.build().toString() - val sort = filters.get()!! + val sort = filters.firstInstanceOrNull()!! return if (sort.getSort() == "") { GET(url, headers) @@ -201,11 +201,7 @@ class BatCave : HttpSource() { url = "/reader/${data.comicId}/${chap.id}${data.xhash}" name = chap.title chapter_number = chap.number - date_upload = try { - dateFormat.parse(chap.date)?.time ?: 0 - } catch (_: ParseException) { - 0 - } + date_upload = dateFormat.tryParse(chap.date) } } } @@ -229,12 +225,4 @@ class BatCave : HttpSource() { override fun imageUrlParse(response: Response): String { throw UnsupportedOperationException() } - - private inline fun FilterList.get(): T? { - return filterIsInstance().firstOrNull() - } - - private inline fun String.parseAs(): T { - return json.decodeFromString(this) - } }