Remove remaining usage of network.client (#8153)

* Explicitly use `network.cloudflareClient` instead of `super.client`

... but only if the parent is `HttpSource` or `ParsedHttpSource`

* Remove use of `network.client`

... replaced with `network.cloudflareClient` or `super.client` if the
parent class sets `client` to `network.cloudflareClient` already.
This commit is contained in:
Vetle Ledaal 2025-03-23 16:04:17 +01:00 committed by Draff
parent 63d0d76535
commit 44a4f517d2
No known key found for this signature in database
GPG Key ID: E8A89F3211677653
123 changed files with 147 additions and 127 deletions

View File

@ -2,7 +2,7 @@ plugins {
id("lib-multisrc") id("lib-multisrc")
} }
baseVersionCode = 8 baseVersionCode = 9
dependencies { dependencies {
api(project(":lib:speedbinb")) api(project(":lib:speedbinb"))

View File

@ -28,7 +28,7 @@ open class ComicGamma(
private val json = Injekt.get<Json>() private val json = Injekt.get<Json>()
override val client = network.client.newBuilder() override val client = network.cloudflareClient.newBuilder()
.addInterceptor(SpeedBinbInterceptor(json)) .addInterceptor(SpeedBinbInterceptor(json))
.build() .build()

View File

@ -2,4 +2,4 @@ plugins {
id("lib-multisrc") id("lib-multisrc")
} }
baseVersionCode = 5 baseVersionCode = 6

View File

@ -39,7 +39,7 @@ abstract class FansubsCat(
override fun headersBuilder(): Headers.Builder = Headers.Builder() override fun headersBuilder(): Headers.Builder = Headers.Builder()
.add("User-Agent", "Tachiyomi/${AppInfo.getVersionName()}") .add("User-Agent", "Tachiyomi/${AppInfo.getVersionName()}")
override val client: OkHttpClient = network.client override val client: OkHttpClient = network.cloudflareClient
private val json: Json by injectLazy() private val json: Json by injectLazy()

View File

@ -2,4 +2,4 @@ plugins {
id("lib-multisrc") id("lib-multisrc")
} }
baseVersionCode = 19 baseVersionCode = 20

View File

@ -32,7 +32,7 @@ open class Kemono(
) : HttpSource(), ConfigurableSource { ) : HttpSource(), ConfigurableSource {
override val supportsLatest = true override val supportsLatest = true
override val client = network.client.newBuilder().rateLimit(1).build() override val client = network.cloudflareClient.newBuilder().rateLimit(1).build()
override fun headersBuilder() = super.headersBuilder() override fun headersBuilder() = super.headersBuilder()
.add("Referer", "$baseUrl/") .add("Referer", "$baseUrl/")

View File

@ -2,7 +2,7 @@ plugins {
id("lib-multisrc") id("lib-multisrc")
} }
baseVersionCode = 3 baseVersionCode = 4
dependencies { dependencies {
api(project(":lib:i18n")) api(project(":lib:i18n"))

View File

@ -48,7 +48,7 @@ abstract class MangaEsp(
protected open val useApiSearch = false protected open val useApiSearch = false
override val client: OkHttpClient = network.client.newBuilder() override val client: OkHttpClient = network.cloudflareClient.newBuilder()
.rateLimitHost(baseUrl.toHttpUrl(), 2) .rateLimitHost(baseUrl.toHttpUrl(), 2)
.build() .build()

View File

@ -2,4 +2,4 @@ plugins {
id("lib-multisrc") id("lib-multisrc")
} }
baseVersionCode = 6 baseVersionCode = 7

View File

@ -33,7 +33,7 @@ open class MCCMS(
private val json: Json by injectLazy() private val json: Json by injectLazy()
override val client by lazy { override val client by lazy {
network.client.newBuilder() network.cloudflareClient.newBuilder()
.rateLimitHost(baseUrl.toHttpUrl(), 2) .rateLimitHost(baseUrl.toHttpUrl(), 2)
.build() .build()
} }

View File

@ -26,7 +26,7 @@ open class MCCMSWeb(
override val supportsLatest get() = true override val supportsLatest get() = true
override val client by lazy { override val client by lazy {
network.client.newBuilder() network.cloudflareClient.newBuilder()
.rateLimitHost(baseUrl.toHttpUrl(), 2) .rateLimitHost(baseUrl.toHttpUrl(), 2)
.build() .build()
} }

View File

@ -2,4 +2,4 @@ plugins {
id("lib-multisrc") id("lib-multisrc")
} }
baseVersionCode = 3 baseVersionCode = 4

View File

@ -26,7 +26,7 @@ abstract class MultiChan(
override val supportsLatest = true override val supportsLatest = true
override val client: OkHttpClient = network.client.newBuilder() override val client: OkHttpClient = network.cloudflareClient.newBuilder()
.connectTimeout(30, TimeUnit.SECONDS) .connectTimeout(30, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS) .readTimeout(30, TimeUnit.SECONDS)
.rateLimit(2) .rateLimit(2)

View File

@ -2,4 +2,4 @@ plugins {
id("lib-multisrc") id("lib-multisrc")
} }
baseVersionCode = 3 baseVersionCode = 4

View File

@ -40,7 +40,7 @@ abstract class Senkuro(
.add("Content-Type", "application/json") .add("Content-Type", "application/json")
override val client: OkHttpClient = override val client: OkHttpClient =
network.client.newBuilder() network.cloudflareClient.newBuilder()
.rateLimit(3) .rateLimit(3)
.build() .build()

View File

@ -2,4 +2,4 @@ plugins {
id("lib-multisrc") id("lib-multisrc")
} }
baseVersionCode = 11 baseVersionCode = 12

View File

@ -34,7 +34,7 @@ abstract class SinMH(
protected open val mobileUrl = _baseUrl.replaceFirst("www.", "m.") protected open val mobileUrl = _baseUrl.replaceFirst("www.", "m.")
override val supportsLatest = true override val supportsLatest = true
override val client = network.client.newBuilder().rateLimit(2).build() override val client = network.cloudflareClient.newBuilder().rateLimit(2).build()
override fun headersBuilder(): Headers.Builder = Headers.Builder() override fun headersBuilder(): Headers.Builder = Headers.Builder()
.add("User-Agent", System.getProperty("http.agent")!!) .add("User-Agent", System.getProperty("http.agent")!!)

View File

@ -2,4 +2,4 @@ plugins {
id("lib-multisrc") id("lib-multisrc")
} }
baseVersionCode = 3 baseVersionCode = 4

View File

@ -45,7 +45,7 @@ open class Webtoons(
override val supportsLatest = true override val supportsLatest = true
override val client: OkHttpClient = super.client.newBuilder() override val client: OkHttpClient = network.cloudflareClient.newBuilder()
.cookieJar( .cookieJar(
object : CookieJar { object : CookieJar {
override fun saveFromResponse(url: HttpUrl, cookies: List<Cookie>) {} override fun saveFromResponse(url: HttpUrl, cookies: List<Cookie>) {}

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Akuma' extName = 'Akuma'
extClass = '.AkumaFactory' extClass = '.AkumaFactory'
extVersionCode = 6 extVersionCode = 7
isNsfw = true isNsfw = true
} }

View File

@ -46,12 +46,12 @@ class Akuma(
private var storedToken: String? = null private var storedToken: String? = null
private val ddosGuardIntercept = DDosGuardInterceptor(network.client) private val ddosGuardIntercept = DDosGuardInterceptor(network.cloudflareClient)
private val dateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH).apply { private val dateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH).apply {
timeZone = TimeZone.getTimeZone("UTC") timeZone = TimeZone.getTimeZone("UTC")
} }
override val client: OkHttpClient = network.client.newBuilder() override val client: OkHttpClient = network.cloudflareClient.newBuilder()
.addInterceptor(ddosGuardIntercept) .addInterceptor(ddosGuardIntercept)
.addInterceptor(::tokenInterceptor) .addInterceptor(::tokenInterceptor)
.rateLimit(2) .rateLimit(2)

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Comic Fury' extName = 'Comic Fury'
extClass = '.ComicFuryFactory' extClass = '.ComicFuryFactory'
extVersionCode = 4 extVersionCode = 5
isNsfw = true isNsfw = true
} }

View File

@ -33,7 +33,7 @@ class ComicFury(
override val name: String = "Comic Fury$extraName" // Used for No Text override val name: String = "Comic Fury$extraName" // Used for No Text
override val supportsLatest: Boolean = true override val supportsLatest: Boolean = true
override val client = super.client.newBuilder().addInterceptor(TextInterceptor()).build() override val client = network.cloudflareClient.newBuilder().addInterceptor(TextInterceptor()).build()
/** /**
* Archive is on a separate page from manga info * Archive is on a separate page from manga info

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Comico' extName = 'Comico'
extClass = '.ComicoFactory' extClass = '.ComicoFactory'
extVersionCode = 6 extVersionCode = 7
isNsfw = true isNsfw = true
} }

View File

@ -62,7 +62,7 @@ open class Comico(
this["Origin"] = baseUrl this["Origin"] = baseUrl
}.build() }.build()
override val client = network.client.newBuilder() override val client = network.cloudflareClient.newBuilder()
.cookieJar( .cookieJar(
object : CookieJar { object : CookieJar {
override fun saveFromResponse(url: HttpUrl, cookies: List<Cookie>) = override fun saveFromResponse(url: HttpUrl, cookies: List<Cookie>) =

View File

@ -1,7 +1,8 @@
ext { ext {
extName = 'HOLONOMETRIA' extName = 'HOLONOMETRIA'
extClass = '.HolonometriaFactory' extClass = '.HolonometriaFactory'
extVersionCode = 1 extVersionCode = 2
isNsfw = false
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -26,7 +26,7 @@ class Holonometria(
override val supportsLatest = false override val supportsLatest = false
override val client = network.client.newBuilder() override val client = network.cloudflareClient.newBuilder()
.readTimeout(60, TimeUnit.SECONDS) .readTimeout(60, TimeUnit.SECONDS)
.build() .build()

View File

@ -1,7 +1,8 @@
ext { ext {
extName = 'izneo (webtoons)' extName = 'izneo (webtoons)'
extClass = '.IzneoFactory' extClass = '.IzneoFactory'
extVersionCode = 6 extVersionCode = 7
isNsfw = false
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -36,7 +36,7 @@ class Izneo(override val lang: String) : ConfigurableSource, HttpSource() {
override val versionId = 2 override val versionId = 2
override val client = network.client.newBuilder() override val client = network.cloudflareClient.newBuilder()
.addInterceptor(ImageInterceptor).build() .addInterceptor(ImageInterceptor).build()
private val apiUrl = "$ORIGIN/$lang/api/catalog/detail/webtoon" private val apiUrl = "$ORIGIN/$lang/api/catalog/detail/webtoon"

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Kiutaku' extName = 'Kiutaku'
extClass = '.Kiutaku' extClass = '.Kiutaku'
extVersionCode = 1 extVersionCode = 2
isNsfw = true isNsfw = true
} }

View File

@ -31,7 +31,7 @@ class Kiutaku : ParsedHttpSource() {
override val supportsLatest = true override val supportsLatest = true
override val client by lazy { override val client by lazy {
network.client.newBuilder() network.cloudflareClient.newBuilder()
.rateLimitHost(baseUrl.toHttpUrl(), 2) .rateLimitHost(baseUrl.toHttpUrl(), 2)
.build() .build()
} }

View File

@ -85,7 +85,7 @@ open class Komga(private val suffix: String = "") : ConfigurableSource, Unmetere
.set("User-Agent", "TachiyomiKomga/${AppInfo.getVersionName()}") .set("User-Agent", "TachiyomiKomga/${AppInfo.getVersionName()}")
override val client: OkHttpClient = override val client: OkHttpClient =
network.client.newBuilder() network.cloudflareClient.newBuilder()
.authenticator { _, response -> .authenticator { _, response ->
if (response.request.header("Authorization") != null) { if (response.request.header("Authorization") != null) {
null // Give up, we've already failed to authenticate. null // Give up, we've already failed to authenticate.

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'MangaDex' extName = 'MangaDex'
extClass = '.MangaDexFactory' extClass = '.MangaDexFactory'
extVersionCode = 200 extVersionCode = 201
isNsfw = true isNsfw = true
} }

View File

@ -71,9 +71,9 @@ abstract class MangaDex(final override val lang: String, private val dexLang: St
return builder return builder
} }
override val client = network.client.newBuilder() override val client = network.cloudflareClient.newBuilder()
.rateLimit(3) .rateLimit(3)
.addInterceptor(MdAtHomeReportInterceptor(network.client, headers)) .addInterceptor(MdAtHomeReportInterceptor(network.cloudflareClient, headers))
.build() .build()
// Popular manga section // Popular manga section

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Manga Hosted' extName = 'Manga Hosted'
extClass = '.MangaHostedFactory' extClass = '.MangaHostedFactory'
extVersionCode = 1 extVersionCode = 2
isNsfw = true isNsfw = true
} }

View File

@ -32,7 +32,7 @@ class MangaHosted(private val langOption: LanguageOption) : HttpSource() {
private val json: Json by injectLazy() private val json: Json by injectLazy()
override val client = network.client.newBuilder() override val client = network.cloudflareClient.newBuilder()
.rateLimit(2) .rateLimit(2)
.build() .build()

View File

@ -53,7 +53,7 @@ class MangaPlus(
.add("User-Agent", USER_AGENT) .add("User-Agent", USER_AGENT)
.add("SESSION-TOKEN", UUID.randomUUID().toString()) .add("SESSION-TOKEN", UUID.randomUUID().toString())
override val client: OkHttpClient = network.client.newBuilder() override val client: OkHttpClient = network.cloudflareClient.newBuilder()
.addInterceptor(::imageIntercept) .addInterceptor(::imageIntercept)
.addInterceptor(::thumbnailIntercept) .addInterceptor(::thumbnailIntercept)
.rateLimitHost(API_URL.toHttpUrl(), 1) .rateLimitHost(API_URL.toHttpUrl(), 1)

View File

@ -1,7 +1,8 @@
ext { ext {
extName = 'MangaToon (Limited)' extName = 'MangaToon (Limited)'
extClass = '.MangaToonFactory' extClass = '.MangaToonFactory'
extVersionCode = 5 extVersionCode = 6
isNsfw = false
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -34,7 +34,7 @@ open class MangaToon(
override val supportsLatest = true override val supportsLatest = true
override val client: OkHttpClient = network.client.newBuilder() override val client: OkHttpClient = network.cloudflareClient.newBuilder()
.rateLimit(1, 1, TimeUnit.SECONDS) .rateLimit(1, 1, TimeUnit.SECONDS)
.build() .build()

View File

@ -1,7 +1,8 @@
ext { ext {
extName = 'Manga UP!' extName = 'Manga UP!'
extClass = '.MangaUpFactory' extClass = '.MangaUpFactory'
extVersionCode = 3 extVersionCode = 4
isNsfw = false
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -32,7 +32,7 @@ class MangaUp(override val lang: String) : HttpSource() {
.add("Referer", baseUrl) .add("Referer", baseUrl)
.add("User-Agent", USER_AGENT) .add("User-Agent", USER_AGENT)
override val client: OkHttpClient = network.client.newBuilder() override val client: OkHttpClient = network.cloudflareClient.newBuilder()
.addInterceptor(::thumbnailIntercept) .addInterceptor(::thumbnailIntercept)
.rateLimitHost(API_URL.toHttpUrl(), 1) .rateLimitHost(API_URL.toHttpUrl(), 1)
.rateLimitHost(baseUrl.toHttpUrl(), 2) .rateLimitHost(baseUrl.toHttpUrl(), 2)

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Mango' extName = 'Mango'
extClass = '.Mango' extClass = '.Mango'
extVersionCode = 10 extVersionCode = 11
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -215,7 +215,7 @@ class Mango : ConfigurableSource, UnmeteredSource, HttpSource() {
private val preferences: SharedPreferences by getPreferencesLazy() private val preferences: SharedPreferences by getPreferencesLazy()
override val client: OkHttpClient = override val client: OkHttpClient =
network.client.newBuilder() network.cloudflareClient.newBuilder()
.dns(Dns.SYSTEM) .dns(Dns.SYSTEM)
.addInterceptor { authIntercept(it) } .addInterceptor { authIntercept(it) }
.build() .build()

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'NamiComi' extName = 'NamiComi'
extClass = '.NamiComiFactory' extClass = '.NamiComiFactory'
extVersionCode = 3 extVersionCode = 4
isNsfw = false isNsfw = false
} }

View File

@ -48,7 +48,7 @@ abstract class NamiComi(final override val lang: String, private val extLang: St
set("Origin", baseUrl) set("Origin", baseUrl)
} }
override val client = network.client.newBuilder() override val client = network.cloudflareClient.newBuilder()
.rateLimit(3) .rateLimit(3)
.addNetworkInterceptor { chain -> .addNetworkInterceptor { chain ->
val response = chain.proceed(chain.request()) val response = chain.proceed(chain.request())

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Tappytoon' extName = 'Tappytoon'
extClass = '.TappytoonFactory' extClass = '.TappytoonFactory'
extVersionCode = 7 extVersionCode = 8
isNsfw = true isNsfw = true
} }

View File

@ -31,7 +31,7 @@ class Tappytoon(override val lang: String) : HttpSource() {
override val supportsLatest = true override val supportsLatest = true
override val client = network.client.newBuilder().addInterceptor { chain -> override val client = network.cloudflareClient.newBuilder().addInterceptor { chain ->
val res = chain.proceed(chain.request()) val res = chain.proceed(chain.request())
val mime = res.headers["Content-Type"] val mime = res.headers["Content-Type"]
if (res.isSuccessful) { if (res.isSuccessful) {

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Toomics' extName = 'Toomics'
extClass = '.ToomicsFactory' extClass = '.ToomicsFactory'
extVersionCode = 8 extVersionCode = 9
isNsfw = true isNsfw = true
} }

View File

@ -43,7 +43,7 @@ abstract class ToomicsGlobal(
private val json: Json by injectLazy() private val json: Json by injectLazy()
override val client: OkHttpClient = super.client.newBuilder() override val client: OkHttpClient = network.cloudflareClient.newBuilder()
.connectTimeout(1, TimeUnit.MINUTES) .connectTimeout(1, TimeUnit.MINUTES)
.readTimeout(1, TimeUnit.MINUTES) .readTimeout(1, TimeUnit.MINUTES)
.writeTimeout(1, TimeUnit.MINUTES) .writeTimeout(1, TimeUnit.MINUTES)

View File

@ -1,7 +1,8 @@
ext { ext {
extName = 'Clown Corps' extName = 'Clown Corps'
extClass = '.ClownCorps' extClass = '.ClownCorps'
extVersionCode = 2 extVersionCode = 3
isNsfw = false
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -34,7 +34,7 @@ class ClownCorps : ConfigurableSource, HttpSource() {
override val name = "Clown Corps" override val name = "Clown Corps"
override val supportsLatest = false override val supportsLatest = false
override val client = network.client.newBuilder() override val client = network.cloudflareClient.newBuilder()
.addInterceptor(TextInterceptor()) .addInterceptor(TextInterceptor())
.build() .build()

View File

@ -1,7 +1,8 @@
ext { ext {
extName = 'Digital Comic Museum' extName = 'Digital Comic Museum'
extClass = '.DigitalComicMuseum' extClass = '.DigitalComicMuseum'
extVersionCode = 2 extVersionCode = 3
isNsfw = false
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -24,7 +24,7 @@ class DigitalComicMuseum() : ParsedHttpSource() {
override val name = "Digital Comic Museum" override val name = "Digital Comic Museum"
override val supportsLatest = true override val supportsLatest = true
override val client: OkHttpClient = super.client.newBuilder() override val client: OkHttpClient = network.cloudflareClient.newBuilder()
.addInterceptor(::errorIntercept) .addInterceptor(::errorIntercept)
.build() .build()

View File

@ -1,7 +1,8 @@
ext { ext {
extName = 'Grrl Power Comic' extName = 'Grrl Power Comic'
extClass = '.GrrlPower' extClass = '.GrrlPower'
extVersionCode = 3 extVersionCode = 4
isNsfw = false
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -36,7 +36,7 @@ class GrrlPower(
private val currentYear = Calendar.getInstance().get(Calendar.YEAR) private val currentYear = Calendar.getInstance().get(Calendar.YEAR)
private val dateFormat = SimpleDateFormat("MMM dd yyyy", Locale.US) private val dateFormat = SimpleDateFormat("MMM dd yyyy", Locale.US)
override val client = super.client.newBuilder().addInterceptor(TextInterceptor()).build() override val client = network.cloudflareClient.newBuilder().addInterceptor(TextInterceptor()).build()
override fun fetchPopularManga(page: Int): Observable<MangasPage> = Observable.just( override fun fetchPopularManga(page: Int): Observable<MangasPage> = Observable.just(
MangasPage( MangasPage(

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Hentaidexy' extName = 'Hentaidexy'
extClass = '.Hentaidexy' extClass = '.Hentaidexy'
extVersionCode = 33 extVersionCode = 34
isNsfw = true isNsfw = true
} }

View File

@ -34,7 +34,7 @@ class Hentaidexy : HttpSource() {
private val json: Json by injectLazy() private val json: Json by injectLazy()
override val client: OkHttpClient = super.client.newBuilder() override val client: OkHttpClient = network.cloudflareClient.newBuilder()
.rateLimitHost(baseUrl.toHttpUrl(), 1) .rateLimitHost(baseUrl.toHttpUrl(), 1)
.build() .build()

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Madokami' extName = 'Madokami'
extClass = '.Madokami' extClass = '.Madokami'
extVersionCode = 10 extVersionCode = 11
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -47,7 +47,7 @@ class Madokami : ConfigurableSource, ParsedHttpSource() {
return request.newBuilder().header("Authorization", credential).build() return request.newBuilder().header("Authorization", credential).build()
} }
override val client: OkHttpClient = super.client.newBuilder().addInterceptor { chain -> override val client: OkHttpClient = network.cloudflareClient.newBuilder().addInterceptor { chain ->
val response = chain.proceed(chain.request()) val response = chain.proceed(chain.request())
if (response.code == 401) throw IOException("You are currently logged out.\nGo to Extensions > Details to input your credentials.") if (response.code == 401) throw IOException("You are currently logged out.\nGo to Extensions > Details to input your credentials.")
response response

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Mangamo' extName = 'Mangamo'
extClass = '.Mangamo' extClass = '.Mangamo'
extVersionCode = 3 extVersionCode = 4
isNsfw = false isNsfw = false
} }

View File

@ -82,7 +82,7 @@ class Mangamo : ConfigurableSource, HttpSource() {
private val exclusivesOnlyPref private val exclusivesOnlyPref
get() = preferences.getStringSet(MangamoConstants.EXCLUSIVES_ONLY_PREF, setOf())!! get() = preferences.getStringSet(MangamoConstants.EXCLUSIVES_ONLY_PREF, setOf())!!
override val client: OkHttpClient = super.client.newBuilder() override val client: OkHttpClient = network.cloudflareClient.newBuilder()
.addNetworkInterceptor { .addNetworkInterceptor {
val request = it.request() val request = it.request()
val response = it.proceed(request) val response = it.proceed(request)

View File

@ -1,7 +1,7 @@
ext { ext {
extName = "Manga Planet" extName = "Manga Planet"
extClass = ".MangaPlanet" extClass = ".MangaPlanet"
extVersionCode = 1 extVersionCode = 2
isNsfw = true isNsfw = true
} }

View File

@ -34,7 +34,7 @@ class MangaPlanet : ParsedHttpSource() {
// No need to be lazy if you're going to use it immediately below. // No need to be lazy if you're going to use it immediately below.
private val json = Injekt.get<Json>() private val json = Injekt.get<Json>()
override val client = network.client.newBuilder() override val client = network.cloudflareClient.newBuilder()
.addInterceptor(SpeedBinbInterceptor(json)) .addInterceptor(SpeedBinbInterceptor(json))
.addNetworkInterceptor(CookieInterceptor(baseUrl.toHttpUrl().host, "mpaconf" to "18")) .addNetworkInterceptor(CookieInterceptor(baseUrl.toHttpUrl().host, "mpaconf" to "18"))
.build() .build()

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Manta Comics' extName = 'Manta Comics'
extClass = '.MantaComics' extClass = '.MantaComics'
extVersionCode = 4 extVersionCode = 5
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -29,7 +29,7 @@ class MantaComics : HttpSource() {
private var token: String? = null private var token: String? = null
override val client = network.client.newBuilder() override val client = network.cloudflareClient.newBuilder()
.cookieJar( .cookieJar(
object : CookieJar { object : CookieJar {
override fun saveFromResponse(url: HttpUrl, cookies: List<Cookie>) { override fun saveFromResponse(url: HttpUrl, cookies: List<Cookie>) {

View File

@ -1,7 +1,8 @@
ext { ext {
extName = 'Questionable Content' extName = 'Questionable Content'
extClass = '.QuestionableContent' extClass = '.QuestionableContent'
extVersionCode = 8 extVersionCode = 9
isNsfw = false
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -29,7 +29,7 @@ class QuestionableContent : ParsedHttpSource(), ConfigurableSource {
override val lang = "en" override val lang = "en"
override val supportsLatest = false override val supportsLatest = false
override val client: OkHttpClient = super.client.newBuilder().addInterceptor(TextInterceptor()).build() override val client: OkHttpClient = network.cloudflareClient.newBuilder().addInterceptor(TextInterceptor()).build()
override fun fetchPopularManga(page: Int): Observable<MangasPage> { override fun fetchPopularManga(page: Int): Observable<MangasPage> {
val manga = SManga.create().apply { val manga = SManga.create().apply {

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Tapas' extName = 'Tapas'
extClass = '.Tapastic' extClass = '.Tapastic'
extVersionCode = 21 extVersionCode = 22
isNsfw = true isNsfw = true
} }

View File

@ -51,7 +51,7 @@ class Tapastic : ConfigurableSource, ParsedHttpSource() {
private val webViewCookieManager: CookieManager by lazy { CookieManager.getInstance() } private val webViewCookieManager: CookieManager by lazy { CookieManager.getInstance() }
override val client: OkHttpClient = super.client.newBuilder() override val client: OkHttpClient = network.cloudflareClient.newBuilder()
.cookieJar( .cookieJar(
// Syncs okhttp with webview cookies, allowing logged-in users do logged-in stuff // Syncs okhttp with webview cookies, allowing logged-in users do logged-in stuff
object : CookieJar { object : CookieJar {

View File

@ -1,7 +1,8 @@
ext { ext {
extName = 'VIZ' extName = 'VIZ'
extClass = '.VizFactory' extClass = '.VizFactory'
extVersionCode = 20 extVersionCode = 21
isNsfw = false
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -38,7 +38,7 @@ open class Viz(
override val supportsLatest = true override val supportsLatest = true
override val client: OkHttpClient = network.client.newBuilder() override val client: OkHttpClient = network.cloudflareClient.newBuilder()
.addInterceptor(::headersIntercept) .addInterceptor(::headersIntercept)
.addInterceptor(::authCheckIntercept) .addInterceptor(::authCheckIntercept)
.addInterceptor(::authChapterCheckIntercept) .addInterceptor(::authChapterCheckIntercept)

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'RavenManga' extName = 'RavenManga'
extClass = '.RavenManga' extClass = '.RavenManga'
extVersionCode = 3 extVersionCode = 4
isNsfw = false isNsfw = false
} }

View File

@ -37,7 +37,7 @@ class RavenManga : ParsedHttpSource() {
override val supportsLatest = true override val supportsLatest = true
override val client: OkHttpClient = network.client.newBuilder() override val client: OkHttpClient = network.cloudflareClient.newBuilder()
.rateLimitHost(baseUrl.toHttpUrl(), 2) .rateLimitHost(baseUrl.toHttpUrl(), 2)
.build() .build()

View File

@ -1,7 +1,8 @@
ext { ext {
extName = "Comic Meteor" extName = "Comic Meteor"
extClass = ".ComicMeteor" extClass = ".ComicMeteor"
extVersionCode = 1 extVersionCode = 2
isNsfw = false
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -33,7 +33,7 @@ class ComicMeteor : ParsedHttpSource() {
private val json = Injekt.get<Json>() private val json = Injekt.get<Json>()
override val client = network.client.newBuilder() override val client = network.cloudflareClient.newBuilder()
.addInterceptor(SpeedBinbInterceptor(json)) .addInterceptor(SpeedBinbInterceptor(json))
.apply { .apply {
val interceptors = interceptors() val interceptors = interceptors()

View File

@ -1,7 +1,8 @@
ext { ext {
extName = "Gaugau Monster Plus" extName = "Gaugau Monster Plus"
extClass = ".GaugauMonsterPlus" extClass = ".GaugauMonsterPlus"
extVersionCode = 1 extVersionCode = 2
isNsfw = false
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -28,7 +28,7 @@ class GaugauMonsterPlus : ParsedHttpSource() {
private val json = Injekt.get<Json>() private val json = Injekt.get<Json>()
override val client = network.client.newBuilder() override val client = network.cloudflareClient.newBuilder()
.addInterceptor(SpeedBinbInterceptor(json)) .addInterceptor(SpeedBinbInterceptor(json))
.build() .build()

View File

@ -1,7 +1,8 @@
ext { ext {
extName = "KadoComi" extName = "KadoComi"
extClass = ".KadoComi" extClass = ".KadoComi"
extVersionCode = 1 extVersionCode = 2
isNsfw = false
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -54,7 +54,7 @@ class KadoComi : HttpSource() {
} }
} }
override val client = network.client.newBuilder() override val client = network.cloudflareClient.newBuilder()
.addNetworkInterceptor(imageDescrambler) .addNetworkInterceptor(imageDescrambler)
.build() .build()

View File

@ -1,7 +1,8 @@
ext { ext {
extName = 'Nicovideo Seiga' extName = 'Nicovideo Seiga'
extClass = '.NicovideoSeiga' extClass = '.NicovideoSeiga'
extVersionCode = 6 extVersionCode = 7
isNsfw = false
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -26,7 +26,7 @@ class NicovideoSeiga : HttpSource() {
override val lang: String = "ja" override val lang: String = "ja"
override val name: String = "Nicovideo Seiga" override val name: String = "Nicovideo Seiga"
override val supportsLatest: Boolean = false override val supportsLatest: Boolean = false
override val client: OkHttpClient = network.client.newBuilder() override val client: OkHttpClient = network.cloudflareClient.newBuilder()
.addInterceptor(::imageIntercept) .addInterceptor(::imageIntercept)
.build() .build()
override val versionId: Int = 2 override val versionId: Int = 2

View File

@ -1,7 +1,7 @@
ext { ext {
extName = "Ohta Web Comic" extName = "Ohta Web Comic"
extClass = ".OhtaWebComic" extClass = ".OhtaWebComic"
extVersionCode = 1 extVersionCode = 2
isNsfw = true isNsfw = true
} }

View File

@ -31,7 +31,7 @@ class OhtaWebComic : ParsedHttpSource() {
private val json = Injekt.get<Json>() private val json = Injekt.get<Json>()
override val client = network.client.newBuilder() override val client = network.cloudflareClient.newBuilder()
.addInterceptor(SpeedBinbInterceptor(json)) .addInterceptor(SpeedBinbInterceptor(json))
.build() .build()

View File

@ -3,7 +3,7 @@ ext {
extClass = '.RawINU' extClass = '.RawINU'
themePkg = 'fmreader' themePkg = 'fmreader'
baseUrl = 'https://rawinu.com' baseUrl = 'https://rawinu.com'
overrideVersionCode = 1 overrideVersionCode = 2
isNsfw = true isNsfw = true
} }

View File

@ -20,7 +20,7 @@ class RawINU : FMReader(
"https://rawinu.com", "https://rawinu.com",
"ja", "ja",
) { ) {
override val client = network.client.newBuilder() override val client = super.client.newBuilder()
.rateLimitHost(baseUrl.toHttpUrl(), 2) .rateLimitHost(baseUrl.toHttpUrl(), 2)
.addInterceptor(::ddosChallengeInterceptor) .addInterceptor(::ddosChallengeInterceptor)
.build() .build()

View File

@ -1,7 +1,7 @@
ext { ext {
extName = "Weekly Young Magazine" extName = "Weekly Young Magazine"
extClass = ".YanmagaFactory" extClass = ".YanmagaFactory"
extVersionCode = 1 extVersionCode = 2
isNsfw = true isNsfw = true
} }

View File

@ -33,7 +33,7 @@ abstract class Yanmaga(
protected val json = Injekt.get<Json>() protected val json = Injekt.get<Json>()
override val client = network.client.newBuilder() override val client = network.cloudflareClient.newBuilder()
.addInterceptor(SpeedBinbInterceptor(json)) .addInterceptor(SpeedBinbInterceptor(json))
.build() .build()

View File

@ -1,7 +1,8 @@
ext { ext {
extName = 'Naver Comic' extName = 'Naver Comic'
extClass = '.NaverComicFactory' extClass = '.NaverComicFactory'
extVersionCode = 5 extVersionCode = 6
isNsfw = false
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -29,7 +29,7 @@ abstract class NaverComicBase(protected val mType: String) : ParsedHttpSource()
override val baseUrl: String = "https://comic.naver.com" override val baseUrl: String = "https://comic.naver.com"
internal val mobileUrl = "https://m.comic.naver.com" internal val mobileUrl = "https://m.comic.naver.com"
override val supportsLatest = true override val supportsLatest = true
override val client: OkHttpClient = network.client override val client: OkHttpClient = network.cloudflareClient
internal val json: Json by injectLazy() internal val json: Json by injectLazy()
private val mobileHeaders = super.headersBuilder() private val mobileHeaders = super.headersBuilder()

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Bakai' extName = 'Bakai'
extClass = '.Bakai' extClass = '.Bakai'
extVersionCode = 9 extVersionCode = 10
isNsfw = true isNsfw = true
} }

View File

@ -46,7 +46,7 @@ class Bakai : ParsedHttpSource() {
it.name.startsWith("ips4_") || it.path == searchPathSegment it.name.startsWith("ips4_") || it.path == searchPathSegment
} }
private val cookieJar = network.client.cookieJar private val cookieJar = network.cloudflareClient.cookieJar
override fun saveFromResponse(url: HttpUrl, cookies: List<Cookie>) = override fun saveFromResponse(url: HttpUrl, cookies: List<Cookie>) =
cookieJar.saveFromResponse(url, cookies.removeLimit()) cookieJar.saveFromResponse(url, cookies.removeLimit())

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Blackout Comics' extName = 'Blackout Comics'
extClass = '.BlackoutComics' extClass = '.BlackoutComics'
extVersionCode = 7 extVersionCode = 8
isNsfw = true isNsfw = true
} }

View File

@ -39,7 +39,7 @@ class BlackoutComics : ParsedHttpSource(), ConfigurableSource {
override val supportsLatest = true override val supportsLatest = true
override val client by lazy { override val client by lazy {
network.client.newBuilder() network.cloudflareClient.newBuilder()
.addInterceptor { chain -> .addInterceptor { chain ->
checkingCredentials() checkingCredentials()

View File

@ -1,7 +1,8 @@
ext { ext {
extName = 'Bruttal' extName = 'Bruttal'
extClass = '.Bruttal' extClass = '.Bruttal'
extVersionCode = 6 extVersionCode = 7
isNsfw = false
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -30,7 +30,7 @@ class Bruttal : HttpSource() {
override val supportsLatest = false override val supportsLatest = false
override val client: OkHttpClient = network.client.newBuilder() override val client: OkHttpClient = network.cloudflareClient.newBuilder()
.rateLimit(1, 2, TimeUnit.SECONDS) .rateLimit(1, 2, TimeUnit.SECONDS)
.build() .build()

View File

@ -3,7 +3,7 @@ ext {
extClass = '.MaidSecret' extClass = '.MaidSecret'
themePkg = 'madara' themePkg = 'madara'
baseUrl = 'https://maidsecret.com' baseUrl = 'https://maidsecret.com'
overrideVersionCode = 0 overrideVersionCode = 1
isNsfw = true isNsfw = true
} }

View File

@ -14,7 +14,7 @@ class MaidSecret : Madara(
) { ) {
override val useNewChapterEndpoint = true override val useNewChapterEndpoint = true
override val client = network.client.newBuilder() override val client = super.client.newBuilder()
.rateLimit(1, 2, TimeUnit.SECONDS) .rateLimit(1, 2, TimeUnit.SECONDS)
.build() .build()
} }

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'AComics' extName = 'AComics'
extClass = '.AComics' extClass = '.AComics'
extVersionCode = 5 extVersionCode = 6
isNsfw = true isNsfw = true
} }

View File

@ -22,7 +22,7 @@ class AComics : ParsedHttpSource() {
override val lang = "ru" override val lang = "ru"
override val client = network.client.newBuilder() override val client = network.cloudflareClient.newBuilder()
.addNetworkInterceptor { chain -> .addNetworkInterceptor { chain ->
val newReq = chain val newReq = chain
.request() .request()

View File

@ -1,7 +1,8 @@
ext { ext {
extName = 'UniComics' extName = 'UniComics'
extClass = '.UniComics' extClass = '.UniComics'
extVersionCode = 6 extVersionCode = 7
isNsfw = false
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

Some files were not shown because too many files have changed in this diff Show More