[ConstellarScans] use mobile UA for requesting page list (#15044)

This commit is contained in:
beerpsi 2023-01-21 00:51:55 +07:00 committed by GitHub
parent 2c306a4da4
commit fe093b3eac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 2 deletions

View File

@ -8,9 +8,15 @@ import android.graphics.ColorMatrixColorFilter
import android.graphics.Paint import android.graphics.Paint
import android.graphics.Rect import android.graphics.Rect
import eu.kanade.tachiyomi.multisrc.mangathemesia.MangaThemesia import eu.kanade.tachiyomi.multisrc.mangathemesia.MangaThemesia
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.interceptor.rateLimit import eu.kanade.tachiyomi.network.interceptor.rateLimit
import eu.kanade.tachiyomi.source.model.Page import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter
import kotlinx.serialization.json.jsonArray
import kotlinx.serialization.json.jsonObject
import kotlinx.serialization.json.jsonPrimitive
import okhttp3.MediaType.Companion.toMediaTypeOrNull import okhttp3.MediaType.Companion.toMediaTypeOrNull
import okhttp3.Request
import okhttp3.ResponseBody.Companion.toResponseBody import okhttp3.ResponseBody.Companion.toResponseBody
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import java.io.ByteArrayOutputStream import java.io.ByteArrayOutputStream
@ -39,10 +45,28 @@ class ConstellarScans : MangaThemesia("Constellar Scans", "https://constellarsca
response.newBuilder() response.newBuilder()
.body(body) .body(body)
.build() .build()
}.build() }
.build()
override val seriesStatusSelector = ".status" override val seriesStatusSelector = ".status"
private val mobileUserAgent by lazy {
val req = GET(UA_DB_URL)
val resp = client.newCall(req).execute()
val mobileUaList = resp.body!!.use {
json.parseToJsonElement(it.string()).jsonObject["mobile"]!!.jsonArray.map {
it.jsonPrimitive.content
}
}
mobileUaList.random().trim()
}
override fun pageListRequest(chapter: SChapter): Request =
super.pageListRequest(chapter).newBuilder()
.header("User-Agent", mobileUserAgent)
.build()
override fun pageListParse(document: Document): List<Page> { override fun pageListParse(document: Document): List<Page> {
val pageList = super.pageListParse(document) val pageList = super.pageListParse(document)
return when { return when {
@ -150,6 +174,7 @@ class ConstellarScans : MangaThemesia("Constellar Scans", "https://constellarsca
companion object { companion object {
const val DESCRAMBLE = "descramble" const val DESCRAMBLE = "descramble"
const val UA_DB_URL = "https://tachiyomiorg.github.io/user-agents/user-agents.json"
const val LOOKUP_STRING = const val LOOKUP_STRING =
" !\"#${'$'}%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}" " !\"#${'$'}%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}"
const val LOOKUP_STRING_ALNUM = const val LOOKUP_STRING_ALNUM =

View File

@ -25,7 +25,7 @@ class MangaThemesiaGenerator : ThemeSourceGenerator {
SingleLang("Azure Scans", "https://azuremanga.com", "en", overrideVersionCode = 1), SingleLang("Azure Scans", "https://azuremanga.com", "en", overrideVersionCode = 1),
SingleLang("Boosei", "https://boosei.net", "id", overrideVersionCode = 2), SingleLang("Boosei", "https://boosei.net", "id", overrideVersionCode = 2),
SingleLang("Clayrer", "https://clayrer.net", "es"), SingleLang("Clayrer", "https://clayrer.net", "es"),
SingleLang("Constellar Scans", "https://constellarscans.com", "en", isNsfw = true, overrideVersionCode = 2), SingleLang("Constellar Scans", "https://constellarscans.com", "en", isNsfw = true, overrideVersionCode = 3),
SingleLang("Cosmic Scans", "https://cosmicscans.com", "en", overrideVersionCode = 1), SingleLang("Cosmic Scans", "https://cosmicscans.com", "en", overrideVersionCode = 1),
SingleLang("Diskus Scan", "https://diskusscan.com", "pt-BR", overrideVersionCode = 7), SingleLang("Diskus Scan", "https://diskusscan.com", "pt-BR", overrideVersionCode = 7),
SingleLang("Dojing.net", "https://dojing.net", "id", isNsfw = true, className = "DojingNet"), SingleLang("Dojing.net", "https://dojing.net", "id", isNsfw = true, className = "DojingNet"),