fix reaperscans (#13907)

* fix reaperscans

* get routename
This commit is contained in:
Henrik 2022-10-18 21:21:37 +02:00 committed by GitHub
parent d21bb3ec00
commit d52dc85288
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 6 deletions

View File

@ -6,7 +6,7 @@ ext {
extName = 'Reaper Scans'
pkgNameSuffix = 'en.reaperscans'
extClass = '.ReaperScans'
extVersionCode = 37
extVersionCode = 38
}
apply from: "$rootDir/common.gradle"

View File

@ -2,6 +2,7 @@ package eu.kanade.tachiyomi.extension.en.reaperscans
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.POST
import eu.kanade.tachiyomi.network.interceptor.rateLimit
import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.model.MangasPage
import eu.kanade.tachiyomi.source.model.Page
@ -15,6 +16,8 @@ import kotlinx.serialization.json.JsonObject
import kotlinx.serialization.json.add
import kotlinx.serialization.json.addJsonObject
import kotlinx.serialization.json.buildJsonObject
import kotlinx.serialization.json.contentOrNull
import kotlinx.serialization.json.jsonPrimitive
import kotlinx.serialization.json.put
import kotlinx.serialization.json.putJsonArray
import kotlinx.serialization.json.putJsonObject
@ -29,6 +32,7 @@ import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
import uy.kohesive.injekt.injectLazy
import java.util.Calendar
import java.util.concurrent.TimeUnit
class ReaperScans : ParsedHttpSource() {
@ -44,7 +48,9 @@ class ReaperScans : ParsedHttpSource() {
private val json: Json by injectLazy()
override val client: OkHttpClient = network.cloudflareClient
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
.rateLimit(1, 2, TimeUnit.SECONDS)
.build()
// Popular
override fun popularMangaRequest(page: Int) = GET("$baseUrl/comics?page=$page", headers)
@ -87,13 +93,16 @@ class ReaperScans : ParsedHttpSource() {
val csrfToken = soup.selectFirst("meta[name=csrf-token]")?.attr("content")
val livewareData = soup.selectFirst("div[wire:initial-data*=frontend.global-search]")
val livewareData = soup.selectFirst("div[wire:initial-data*=comics]")
?.attr("wire:initial-data")
?.parseJson<LiveWireDataDto>()
if (csrfToken == null) error("Couldn't find csrf-token")
if (livewareData == null) error("Couldn't find LiveWireData")
val routeName = livewareData.fingerprint["name"]?.jsonPrimitive?.contentOrNull
?: error("Couldn't find routeName")
val payload = buildJsonObject {
put("fingerprint", livewareData.fingerprint)
put("serverMemo", livewareData.serverMemo)
@ -114,7 +123,7 @@ class ReaperScans : ParsedHttpSource() {
.add("x-livewire", "true")
.build()
return POST("$baseUrl/livewire/message/frontend.global-search", headers, payload)
return POST("$baseUrl/livewire/message/$routeName", headers, payload)
}
override fun searchMangaSelector(): String = "a[href*=/comics/]"
@ -175,13 +184,16 @@ class ReaperScans : ParsedHttpSource() {
val csrfToken = document.selectFirst("meta[name=csrf-token]")?.attr("content")
val livewareData = document.selectFirst("div[wire:initial-data*=frontend.comic-chapters-list]")
val livewareData = document.selectFirst("div[wire:initial-data*=Models\\\\Comic]")
?.attr("wire:initial-data")
?.parseJson<LiveWireDataDto>()
if (csrfToken == null) error("Couldn't find csrf-token")
if (livewareData == null) error("Couldn't find LiveWireData")
val routeName = livewareData.fingerprint["name"]?.jsonPrimitive?.contentOrNull
?: error("Couldn't find routeName")
val fingerprint = livewareData.fingerprint
var serverMemo = livewareData.serverMemo
@ -213,7 +225,7 @@ class ReaperScans : ParsedHttpSource() {
.add("x-livewire", "true")
.build()
val request = POST("$baseUrl/livewire/message/frontend.comic-chapters-list", headers, payload)
val request = POST("$baseUrl/livewire/message/$routeName", headers, payload)
val responseData = client.newCall(request).execute().parseJson<LiveWireResponseDto>()