MadTheme: fix pagination and relax rate limiting to CDN hosts (#11163)
* MadTheme: fix pagination * relax rate limiting * disable alt CDNs
This commit is contained in:
parent
82a59cb6d5
commit
743bc0d382
@ -1,7 +1,8 @@
|
||||
package eu.kanade.tachiyomi.extension.en.beehentai
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.SpecificHostRateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madtheme.MadTheme
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import okhttp3.OkHttpClient
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
@ -11,6 +12,45 @@ class BeeHentai : MadTheme(
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 2, TimeUnit.SECONDS))
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv1.xyz".toHttpUrl(),
|
||||
5,
|
||||
1,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv2.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv3.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv4.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv5.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.build()
|
||||
}
|
||||
|
@ -1,7 +1,8 @@
|
||||
package eu.kanade.tachiyomi.extension.en.boxmanhwa
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.SpecificHostRateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madtheme.MadTheme
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import okhttp3.OkHttpClient
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
@ -11,6 +12,45 @@ class BoxManhwa : MadTheme(
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 2, TimeUnit.SECONDS))
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv1.xyz".toHttpUrl(),
|
||||
5,
|
||||
1,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv2.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv3.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv4.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv5.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.build()
|
||||
}
|
||||
|
@ -1,7 +1,8 @@
|
||||
package eu.kanade.tachiyomi.extension.en.mangabuddy
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.SpecificHostRateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madtheme.MadTheme
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import okhttp3.OkHttpClient
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
@ -11,6 +12,45 @@ class MangaBuddy : MadTheme(
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 2, TimeUnit.SECONDS))
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv1.xyz".toHttpUrl(),
|
||||
5,
|
||||
1,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv2.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv3.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv4.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv5.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.build()
|
||||
}
|
||||
|
@ -1,7 +1,8 @@
|
||||
package eu.kanade.tachiyomi.extension.en.mangacute
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.SpecificHostRateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madtheme.MadTheme
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import okhttp3.OkHttpClient
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
@ -11,6 +12,45 @@ class MangaCute : MadTheme(
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 2, TimeUnit.SECONDS))
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv1.xyz".toHttpUrl(),
|
||||
5,
|
||||
1,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv2.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv3.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv4.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv5.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.build()
|
||||
}
|
||||
|
@ -1,7 +1,8 @@
|
||||
package eu.kanade.tachiyomi.extension.en.mangafab
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.SpecificHostRateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madtheme.MadTheme
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import okhttp3.OkHttpClient
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
@ -11,6 +12,45 @@ class MangaFab : MadTheme(
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 2, TimeUnit.SECONDS))
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv1.xyz".toHttpUrl(),
|
||||
5,
|
||||
1,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv2.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv3.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv4.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv5.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.build()
|
||||
}
|
||||
|
@ -1,7 +1,8 @@
|
||||
package eu.kanade.tachiyomi.extension.en.mangaforest
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.SpecificHostRateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madtheme.MadTheme
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import okhttp3.OkHttpClient
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
@ -11,6 +12,45 @@ class MangaForest : MadTheme(
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 2, TimeUnit.SECONDS))
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv1.xyz".toHttpUrl(),
|
||||
5,
|
||||
1,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv2.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv3.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv4.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv5.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.build()
|
||||
}
|
||||
|
@ -1,7 +1,8 @@
|
||||
package eu.kanade.tachiyomi.extension.en.mangamad
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.SpecificHostRateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madtheme.MadTheme
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import okhttp3.OkHttpClient
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
@ -11,6 +12,45 @@ class MangaMad : MadTheme(
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 2, TimeUnit.SECONDS))
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv1.xyz".toHttpUrl(),
|
||||
5,
|
||||
1,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv2.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv3.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv4.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv5.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.build()
|
||||
}
|
||||
|
@ -1,7 +1,8 @@
|
||||
package eu.kanade.tachiyomi.extension.en.mangamax
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.SpecificHostRateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madtheme.MadTheme
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import okhttp3.OkHttpClient
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
@ -11,6 +12,45 @@ class MangaMax : MadTheme(
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 2, TimeUnit.SECONDS))
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv1.xyz".toHttpUrl(),
|
||||
5,
|
||||
1,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv2.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv3.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv4.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv5.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.build()
|
||||
}
|
||||
|
@ -1,7 +1,8 @@
|
||||
package eu.kanade.tachiyomi.extension.en.mangasaga
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.SpecificHostRateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madtheme.MadTheme
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import okhttp3.OkHttpClient
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
@ -11,6 +12,45 @@ class MangaSaga : MadTheme(
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 2, TimeUnit.SECONDS))
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv1.xyz".toHttpUrl(),
|
||||
5,
|
||||
1,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv2.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv3.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv4.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv5.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.build()
|
||||
}
|
||||
|
@ -1,7 +1,8 @@
|
||||
package eu.kanade.tachiyomi.extension.en.mangaspin
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.SpecificHostRateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madtheme.MadTheme
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import okhttp3.OkHttpClient
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
@ -11,6 +12,45 @@ class MangaSpin : MadTheme(
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 2, TimeUnit.SECONDS))
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv1.xyz".toHttpUrl(),
|
||||
5,
|
||||
1,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv2.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv3.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv4.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv5.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.build()
|
||||
}
|
||||
|
@ -1,7 +1,8 @@
|
||||
package eu.kanade.tachiyomi.extension.en.mangaxyz
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.SpecificHostRateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madtheme.MadTheme
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import okhttp3.OkHttpClient
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
@ -11,6 +12,45 @@ class MangaXYZ : MadTheme(
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 2, TimeUnit.SECONDS))
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv1.xyz".toHttpUrl(),
|
||||
5,
|
||||
1,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv2.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv3.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv4.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv5.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.build()
|
||||
}
|
||||
|
@ -1,7 +1,8 @@
|
||||
package eu.kanade.tachiyomi.extension.en.manhuanow
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.SpecificHostRateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madtheme.MadTheme
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import okhttp3.OkHttpClient
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
@ -11,6 +12,45 @@ class ManhuaNow : MadTheme(
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 2, TimeUnit.SECONDS))
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv1.xyz".toHttpUrl(),
|
||||
5,
|
||||
1,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv2.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv3.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv4.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv5.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.build()
|
||||
}
|
||||
|
@ -1,7 +1,8 @@
|
||||
package eu.kanade.tachiyomi.extension.en.manhuasite
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.SpecificHostRateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madtheme.MadTheme
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import okhttp3.OkHttpClient
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
@ -11,6 +12,45 @@ class ManhuaSite : MadTheme(
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 2, TimeUnit.SECONDS))
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv1.xyz".toHttpUrl(),
|
||||
5,
|
||||
1,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv2.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv3.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv4.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv5.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.build()
|
||||
}
|
||||
|
@ -1,7 +1,8 @@
|
||||
package eu.kanade.tachiyomi.extension.en.tooniclub
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.SpecificHostRateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madtheme.MadTheme
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import okhttp3.OkHttpClient
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
@ -11,6 +12,45 @@ class TooniClub : MadTheme(
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 2, TimeUnit.SECONDS))
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv1.xyz".toHttpUrl(),
|
||||
5,
|
||||
1,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv2.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv3.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv4.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv5.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.build()
|
||||
}
|
||||
|
@ -1,7 +1,8 @@
|
||||
package eu.kanade.tachiyomi.extension.en.toonifab
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.SpecificHostRateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madtheme.MadTheme
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import okhttp3.OkHttpClient
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
@ -11,6 +12,45 @@ class TooniFab : MadTheme(
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 2, TimeUnit.SECONDS))
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv1.xyz".toHttpUrl(),
|
||||
5,
|
||||
1,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv2.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv3.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv4.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv5.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.build()
|
||||
}
|
||||
|
@ -1,7 +1,8 @@
|
||||
package eu.kanade.tachiyomi.extension.en.toonilyme
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.SpecificHostRateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madtheme.MadTheme
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import okhttp3.OkHttpClient
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
@ -11,6 +12,45 @@ class ToonilyMe : MadTheme(
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 2, TimeUnit.SECONDS))
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv1.xyz".toHttpUrl(),
|
||||
5,
|
||||
1,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv2.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv3.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv4.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv5.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.build()
|
||||
}
|
||||
|
@ -1,7 +1,8 @@
|
||||
package eu.kanade.tachiyomi.extension.en.toonitube
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.SpecificHostRateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madtheme.MadTheme
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import okhttp3.OkHttpClient
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
@ -11,6 +12,45 @@ class TooniTube : MadTheme(
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 2, TimeUnit.SECONDS))
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv1.xyz".toHttpUrl(),
|
||||
5,
|
||||
1,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv2.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv3.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv4.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv5.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.build()
|
||||
}
|
||||
|
@ -1,7 +1,8 @@
|
||||
package eu.kanade.tachiyomi.extension.en.truemanga
|
||||
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.lib.ratelimit.SpecificHostRateLimitInterceptor
|
||||
import eu.kanade.tachiyomi.multisrc.madtheme.MadTheme
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import okhttp3.OkHttpClient
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
@ -11,6 +12,45 @@ class TrueManga : MadTheme(
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
|
||||
.addInterceptor(RateLimitInterceptor(1, 2, TimeUnit.SECONDS))
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv1.xyz".toHttpUrl(),
|
||||
5,
|
||||
1,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv2.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv3.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv4.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.addInterceptor(
|
||||
SpecificHostRateLimitInterceptor(
|
||||
"https://s1.mbcdnv5.xyz".toHttpUrl(),
|
||||
1,
|
||||
2,
|
||||
TimeUnit.SECONDS
|
||||
)
|
||||
)
|
||||
.build()
|
||||
}
|
||||
|
@ -74,6 +74,7 @@ abstract class MadTheme(
|
||||
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
|
||||
val url = "$baseUrl/search".toHttpUrl().newBuilder()
|
||||
.addQueryParameter("q", query)
|
||||
.addQueryParameter("page", page.toString())
|
||||
|
||||
filters.forEach { filter ->
|
||||
when (filter) {
|
||||
@ -192,7 +193,8 @@ abstract class MadTheme(
|
||||
}
|
||||
}
|
||||
|
||||
val allCDN = listOf(CDN_URL) + CDN_URL_ALT
|
||||
// Disabling alt CDNs until fallback can be implemented
|
||||
val allCDN = listOf(CDN_URL) // + CDN_URL_ALT
|
||||
return chImages.mapIndexed { index, img ->
|
||||
Page(index, "", allCDN.random() + CDN_PATH + img)
|
||||
}
|
||||
|
@ -9,7 +9,7 @@ class MadThemeGenerator : ThemeSourceGenerator {
|
||||
|
||||
override val themeClass = "MadTheme"
|
||||
|
||||
override val baseVersionCode: Int = 4
|
||||
override val baseVersionCode: Int = 5
|
||||
|
||||
override val sources = listOf(
|
||||
SingleLang("BeeHentai", "https://beehentai.com", "en", isNsfw = true),
|
||||
|
Loading…
x
Reference in New Issue
Block a user