From 14fc02cb233129c64627ae2ca2e11291b0bb04a1 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Wed, 13 Mar 2024 12:49:23 +0200 Subject: [PATCH] [ReaperComics] Refactor #620 --- .../kotatsu/parsers/site/en/ReaperComics.kt | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/en/ReaperComics.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/en/ReaperComics.kt index 5fa4a4124..3b1c2d020 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/en/ReaperComics.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/en/ReaperComics.kt @@ -20,8 +20,7 @@ import org.koitharu.kotatsu.parsers.util.* import org.koitharu.kotatsu.parsers.util.json.getStringOrNull import java.text.DateFormat import java.text.SimpleDateFormat -import java.util.Calendar -import java.util.EnumSet +import java.util.* import kotlin.random.Random private const val TOO_MANY_REQUESTS = 429 @@ -35,8 +34,9 @@ internal class ReaperComics(context: MangaLoaderContext) : override val configKeyDomain = ConfigKey.Domain("reaperscans.com") - private val userAgentKey = - ConfigKey.UserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36") + private val userAgentKey = ConfigKey.UserAgent( + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36", + ) private val baseHeaders: Headers get() = Headers.Builder().add("User-Agent", config[userAgentKey]).build() @@ -50,8 +50,6 @@ internal class ReaperComics(context: MangaLoaderContext) : private val searchCache = mutableSetOf() // Cache search results private val chapterCache = mutableMapOf() // Cache chapter lists - private val baseUrl = "https://reaperscans.com" - private fun getApiHeaders(): Headers { val userCookie = context.cookieJar.getCookies(domain).find { it.name == "user" @@ -243,11 +241,11 @@ internal class ReaperComics(context: MangaLoaderContext) : val headers = Headers.Builder().add("x-csrf-token", csrfToken).add("x-livewire", "true").build() val responseData = - makeRequest("$baseUrl/livewire/message/$routeName", payload, headers) + makeRequest("https://$domain/livewire/message/$routeName", payload, headers) // response contains state that we need to preserve serverMemo = mergeLeft(serverMemo, responseData.serverMemo) - val chaptersHtml = Jsoup.parse(responseData.effects.html, baseUrl) + val chaptersHtml = Jsoup.parse(responseData.effects.html, "https://$domain") chapters.addAll( chaptersHtml.select(chapterListSelector()).mapChapters { _, li -> val a = li.selectFirstOrThrow("a") @@ -365,16 +363,18 @@ internal class ReaperComics(context: MangaLoaderContext) : ) } } -} -data class LiveWireResponseDto( - val effects: LiveWireEffectsDto, - val serverMemo: JSONObject, -) + private class LiveWireResponseDto( + val effects: LiveWireEffectsDto, + val serverMemo: JSONObject, + ) -data class LiveWireEffectsDto( - val html: String, -) + private class LiveWireEffectsDto( + val html: String, + ) -//!IMPORTANT -private val responseTemplate = """{"fingerprint":{"id":"%s","name":"frontend.comic-chapter-list","locale":"en","path":"%s","method":"GET","v":"acj"},"serverMemo":{"children":[],"errors":[],"htmlHash":"%s","data":{"comic":[],"page":%d,"paginators":{"page":%d}},"dataMeta":{"models":{"comic":{"class":"App\\Models\\Comic","id":"%s","relations":[],"connection":"pgsql","collectionClass":null}}},"checksum":"%s"},"updates":[{"type":"callMethod","payload":{"id":"%s","method":"gotoPage","params":[%d,"page"]}}]}""" + //!IMPORTANT + private val responseTemplate = + """{"fingerprint":{"id":"%s","name":"frontend.comic-chapter-list","locale":"en","path":"%s","method":"GET","v":"acj"},"serverMemo":{"children":[],"errors":[],"htmlHash":"%s","data":{"comic":[],"page":%d,"paginators":{"page":%d}},"dataMeta":{"models":{"comic":{"class":"App\\Models\\Comic","id":"%s","relations":[],"connection":"pgsql","collectionClass":null}}},"checksum":"%s"},"updates":[{"type":"callMethod","payload":{"id":"%s","method":"gotoPage","params":[%d,"page"]}}]}""" + +}