MangaHub: add more headers (#12938)
This commit is contained in:
parent
0c2d35cc41
commit
cf1bca5c81
|
@ -23,6 +23,7 @@ import okhttp3.OkHttpClient
|
||||||
import okhttp3.Request
|
import okhttp3.Request
|
||||||
import okhttp3.RequestBody.Companion.toRequestBody
|
import okhttp3.RequestBody.Companion.toRequestBody
|
||||||
import okhttp3.Response
|
import okhttp3.Response
|
||||||
|
import okhttp3.internal.userAgent
|
||||||
import org.jsoup.nodes.Document
|
import org.jsoup.nodes.Document
|
||||||
import org.jsoup.nodes.Element
|
import org.jsoup.nodes.Element
|
||||||
import uy.kohesive.injekt.injectLazy
|
import uy.kohesive.injekt.injectLazy
|
||||||
|
@ -53,11 +54,32 @@ abstract class MangaHub(
|
||||||
.build()
|
.build()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun headersBuilder(): Headers.Builder = super.headersBuilder()
|
override fun headersBuilder(): Headers.Builder {
|
||||||
// https://developer.mozilla.org/en-US/docs/Web/HTTP/Content_negotiation/List_of_default_Accept_values
|
val chromeVersion = userAgent
|
||||||
.add("Accept", "text/html, application/xhtml+xml, image/jxr, */*")
|
.substringAfter("Chrome/")
|
||||||
.add("Origin", baseUrl)
|
.substringBefore(".")
|
||||||
.add("Referer", "$baseUrl/")
|
.toIntOrNull()
|
||||||
|
?: "104"
|
||||||
|
|
||||||
|
val edgeVersion = userAgent
|
||||||
|
.substringAfter("Edg/")
|
||||||
|
.substringBefore(".")
|
||||||
|
.toIntOrNull()
|
||||||
|
?: chromeVersion
|
||||||
|
|
||||||
|
return super.headersBuilder()
|
||||||
|
.add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9")
|
||||||
|
.add("Accept-Language", "en-US,en;q=0.5")
|
||||||
|
.add("DNT", "1")
|
||||||
|
.add("Referer", "$baseUrl/")
|
||||||
|
.add("Sec-CH-UA", "\"Chromium\";v=\"$chromeVersion\", \" Not A;Brand\";v=\"99\", \"Microsoft Edge\";v=\"$edgeVersion\"")
|
||||||
|
.add("Sec-CH-UA-Mobile", "?0")
|
||||||
|
.add("Sec-CH-UA-Platform", "\"Windows\"")
|
||||||
|
.add("Sec-Fetch-Dest", "document")
|
||||||
|
.add("Sec-Fetch-Mode", "navigate")
|
||||||
|
.add("Sec-Fetch-Site", "same-origin")
|
||||||
|
.add("Upgrade-Insecure-Requests", "1")
|
||||||
|
}
|
||||||
|
|
||||||
// Popular
|
// Popular
|
||||||
override fun popularMangaRequest(page: Int): Request =
|
override fun popularMangaRequest(page: Int): Request =
|
||||||
|
@ -237,7 +259,15 @@ abstract class MangaHub(
|
||||||
|
|
||||||
// Pages
|
// Pages
|
||||||
override fun pageListRequest(chapter: SChapter): Request {
|
override fun pageListRequest(chapter: SChapter): Request {
|
||||||
val jsonHeaders = headers.newBuilder().add("Content-Type", "application/json").build()
|
val jsonHeaders = headersBuilder()
|
||||||
|
.set("Accept", "application/json")
|
||||||
|
.add("Content-Type", "application/json")
|
||||||
|
.add("Origin", baseUrl)
|
||||||
|
.set("Sec-Fetch-Dest", "empty")
|
||||||
|
.set("Sec-Fetch-Mode", "cors")
|
||||||
|
.set("Sec-Fetch-Site", "cross-site")
|
||||||
|
.removeAll("Upgrade-Insecure-Requests")
|
||||||
|
.build()
|
||||||
|
|
||||||
val slug = chapter.url
|
val slug = chapter.url
|
||||||
.substringAfter("chapter/")
|
.substringAfter("chapter/")
|
||||||
|
@ -269,6 +299,18 @@ abstract class MangaHub(
|
||||||
throw UnsupportedOperationException("Not used.")
|
throw UnsupportedOperationException("Not used.")
|
||||||
|
|
||||||
// Image
|
// Image
|
||||||
|
override fun imageUrlRequest(page: Page): Request {
|
||||||
|
val newHeaders = headersBuilder()
|
||||||
|
.set("Accept", "image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8")
|
||||||
|
.set("Sec-Fetch-Dest", "image")
|
||||||
|
.set("Sec-Fetch-Mode", "no-cors")
|
||||||
|
.set("Sec-Fetch-Site", "cross-site")
|
||||||
|
.removeAll("Upgrade-Insecure-Requests")
|
||||||
|
.build()
|
||||||
|
|
||||||
|
return GET(page.url, newHeaders)
|
||||||
|
}
|
||||||
|
|
||||||
override fun imageUrlParse(document: Document): String =
|
override fun imageUrlParse(document: Document): String =
|
||||||
throw UnsupportedOperationException("Not used.")
|
throw UnsupportedOperationException("Not used.")
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ class MangaHubGenerator : ThemeSourceGenerator {
|
||||||
|
|
||||||
override val themeClass = "MangaHub"
|
override val themeClass = "MangaHub"
|
||||||
|
|
||||||
override val baseVersionCode: Int = 5
|
override val baseVersionCode: Int = 6
|
||||||
|
|
||||||
override val sources = listOf(
|
override val sources = listOf(
|
||||||
SingleLang("1Manga.co", "https://1manga.co", "en", isNsfw = true, className = "OneMangaCo"),
|
SingleLang("1Manga.co", "https://1manga.co", "en", isNsfw = true, className = "OneMangaCo"),
|
||||||
|
|
Loading…
Reference in New Issue