NHentai: configurable User-Agent

Koitharu 2 years ago
parent 83e971d85b
commit 69e7efe6d1
Signed by: Koitharu
GPG Key ID: 676DEE768C17A9D7

@ -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 ->

Loading…
Cancel
Save