NHentai: configurable User-Agent
This commit is contained in:
@@ -25,6 +25,7 @@ import kotlin.random.Random
|
||||
|
||||
private const val TOO_MANY_REQUESTS = 429
|
||||
private const val MAX_RETRY_COUNT = 5
|
||||
private val JSON_MEDIA_TYPE get() = "application/json; charset=utf-8".toMediaType()
|
||||
|
||||
@MangaSourceParser("REAPERCOMICS", "ReaperComics", "en")
|
||||
internal class ReaperComics(context: MangaLoaderContext) :
|
||||
@@ -153,8 +154,9 @@ internal class ReaperComics(context: MangaLoaderContext) :
|
||||
|
||||
override suspend fun getAvailableTags(): Set<MangaTag> = emptySet()
|
||||
|
||||
companion object {
|
||||
private val JSON_MEDIA_TYPE = "application/json; charset=utf-8".toMediaType()
|
||||
override fun onCreateConfig(keys: MutableCollection<ConfigKey<*>>) {
|
||||
super.onCreateConfig(keys)
|
||||
keys.add(userAgentKey)
|
||||
}
|
||||
|
||||
private fun chapterListNextPageSelector(): String = "button[wire:click*=nextPage]"
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
package org.koitharu.kotatsu.parsers.site.galleryadults.all
|
||||
|
||||
import okhttp3.Headers
|
||||
import org.jsoup.internal.StringUtil
|
||||
import org.jsoup.nodes.Document
|
||||
import org.jsoup.nodes.Element
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.config.ConfigKey
|
||||
import org.koitharu.kotatsu.parsers.model.*
|
||||
import org.koitharu.kotatsu.parsers.network.UserAgents
|
||||
import org.koitharu.kotatsu.parsers.site.galleryadults.GalleryAdultsParser
|
||||
import org.koitharu.kotatsu.parsers.util.*
|
||||
import java.util.*
|
||||
@@ -28,6 +31,13 @@ internal class NHentaiParser(context: MangaLoaderContext) :
|
||||
|
||||
override val isMultipleTagsSupported = true
|
||||
|
||||
private val userAgentKey = ConfigKey.UserAgent(UserAgents.DEFAULT_BROWSER)
|
||||
|
||||
override val headers: Headers
|
||||
get() = super.headers.newBuilder()
|
||||
.set("User-Agent", config[userAgentKey])
|
||||
.build()
|
||||
|
||||
override suspend fun getListPage(page: Int, filter: MangaListFilter?): List<Manga> {
|
||||
|
||||
val url = buildString {
|
||||
@@ -67,7 +77,7 @@ internal class NHentaiParser(context: MangaLoaderContext) :
|
||||
if (filter.sortOrder == SortOrder.POPULARITY) {
|
||||
append("popular")
|
||||
}
|
||||
if(page > 1){
|
||||
if (page > 1) {
|
||||
append("?")
|
||||
}
|
||||
} else if (filter.locale != null) {
|
||||
@@ -77,7 +87,7 @@ internal class NHentaiParser(context: MangaLoaderContext) :
|
||||
if (filter.sortOrder == SortOrder.POPULARITY) {
|
||||
append("popular")
|
||||
}
|
||||
if(page > 1){
|
||||
if (page > 1) {
|
||||
append("?")
|
||||
}
|
||||
} else {
|
||||
@@ -91,7 +101,7 @@ internal class NHentaiParser(context: MangaLoaderContext) :
|
||||
|
||||
null -> append("/?")
|
||||
}
|
||||
if(page > 1){
|
||||
if (page > 1) {
|
||||
append("page=")
|
||||
append(page.toString())
|
||||
}
|
||||
@@ -146,6 +156,11 @@ internal class NHentaiParser(context: MangaLoaderContext) :
|
||||
Locale.CHINESE,
|
||||
)
|
||||
|
||||
override fun onCreateConfig(keys: MutableCollection<ConfigKey<*>>) {
|
||||
super.onCreateConfig(keys)
|
||||
keys.add(userAgentKey)
|
||||
}
|
||||
|
||||
private fun buildQuery(tags: Collection<MangaTag>, language: Locale?): String {
|
||||
val joiner = StringUtil.StringJoiner(" ")
|
||||
tags.forEach { tag ->
|
||||
|
||||
Reference in New Issue
Block a user