MangaHub: fix images not loading (#12792)
* MangaHub: fix images not loading * make CDN configurable in subclass * move rate limiting to super class
This commit is contained in:
parent
34e005c8b2
commit
b4e56cb8d7
|
@ -1,17 +1,11 @@
|
|||
package eu.kanade.tachiyomi.extension.en.mangafoxfun
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangahub.MangaHub
|
||||
import eu.kanade.tachiyomi.network.interceptor.rateLimitHost
|
||||
import okhttp3.OkHttpClient
|
||||
|
||||
class MangaFoxFun : MangaHub(
|
||||
"MangaFox.fun",
|
||||
"https://mangafox.fun",
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.rateLimitHost(cdnHost, 1, 2)
|
||||
.build()
|
||||
|
||||
override val serverId = "mf01"
|
||||
}
|
||||
|
|
|
@ -1,17 +1,11 @@
|
|||
package eu.kanade.tachiyomi.extension.en.mangahereonl
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangahub.MangaHub
|
||||
import eu.kanade.tachiyomi.network.interceptor.rateLimitHost
|
||||
import okhttp3.OkHttpClient
|
||||
|
||||
class MangaHereOnl : MangaHub(
|
||||
"MangaHere.onl",
|
||||
"https://mangahere.onl",
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.rateLimitHost(cdnHost, 1, 2)
|
||||
.build()
|
||||
|
||||
override val serverId = "mh01"
|
||||
}
|
||||
|
|
|
@ -1,17 +1,11 @@
|
|||
package eu.kanade.tachiyomi.extension.en.mangahubio
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangahub.MangaHub
|
||||
import eu.kanade.tachiyomi.network.interceptor.rateLimitHost
|
||||
import okhttp3.OkHttpClient
|
||||
|
||||
class MangaHubIo : MangaHub(
|
||||
"MangaHub",
|
||||
"https://mangahub.io",
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.rateLimitHost(cdnHost, 1, 2)
|
||||
.build()
|
||||
|
||||
override val serverId = "m01"
|
||||
}
|
||||
|
|
|
@ -1,17 +1,11 @@
|
|||
package eu.kanade.tachiyomi.extension.en.mangakakalotfun
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangahub.MangaHub
|
||||
import eu.kanade.tachiyomi.network.interceptor.rateLimitHost
|
||||
import okhttp3.OkHttpClient
|
||||
|
||||
class MangakakalotFun : MangaHub(
|
||||
"Mangakakalot.fun",
|
||||
"https://mangakakalot.fun",
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.rateLimitHost(cdnHost, 1, 2)
|
||||
.build()
|
||||
|
||||
override val serverId = "mn01"
|
||||
}
|
||||
|
|
|
@ -1,17 +1,11 @@
|
|||
package eu.kanade.tachiyomi.extension.en.manganel
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangahub.MangaHub
|
||||
import eu.kanade.tachiyomi.network.interceptor.rateLimitHost
|
||||
import okhttp3.OkHttpClient
|
||||
|
||||
class MangaNel : MangaHub(
|
||||
"MangaNel",
|
||||
"https://manganel.me",
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.rateLimitHost(cdnHost, 1, 2)
|
||||
.build()
|
||||
|
||||
override val serverId = "mn05"
|
||||
}
|
||||
|
|
|
@ -1,17 +1,11 @@
|
|||
package eu.kanade.tachiyomi.extension.en.mangaonlinefun
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangahub.MangaHub
|
||||
import eu.kanade.tachiyomi.network.interceptor.rateLimitHost
|
||||
import okhttp3.OkHttpClient
|
||||
|
||||
class MangaOnlineFun : MangaHub(
|
||||
"MangaOnline.fun",
|
||||
"https://mangaonline.fun",
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.rateLimitHost(cdnHost, 1, 2)
|
||||
.build()
|
||||
|
||||
override val serverId = "m02"
|
||||
}
|
||||
|
|
|
@ -1,17 +1,11 @@
|
|||
package eu.kanade.tachiyomi.extension.en.mangapandaonl
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangahub.MangaHub
|
||||
import eu.kanade.tachiyomi.network.interceptor.rateLimitHost
|
||||
import okhttp3.OkHttpClient
|
||||
|
||||
class MangaPandaOnl : MangaHub(
|
||||
"MangaPanda.onl",
|
||||
"https://mangapanda.onl",
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.rateLimitHost(cdnHost, 1, 2)
|
||||
.build()
|
||||
|
||||
override val serverId = "mr02"
|
||||
}
|
||||
|
|
|
@ -1,17 +1,11 @@
|
|||
package eu.kanade.tachiyomi.extension.en.mangareadersite
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangahub.MangaHub
|
||||
import eu.kanade.tachiyomi.network.interceptor.rateLimitHost
|
||||
import okhttp3.OkHttpClient
|
||||
|
||||
class MangaReaderSite : MangaHub(
|
||||
"MangaReader.site",
|
||||
"https://mangareader.site",
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.rateLimitHost(cdnHost, 1, 2)
|
||||
.build()
|
||||
|
||||
override val serverId = "mr01"
|
||||
}
|
||||
|
|
|
@ -1,17 +1,11 @@
|
|||
package eu.kanade.tachiyomi.extension.en.mangatoday
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangahub.MangaHub
|
||||
import eu.kanade.tachiyomi.network.interceptor.rateLimitHost
|
||||
import okhttp3.OkHttpClient
|
||||
|
||||
class MangaToday : MangaHub(
|
||||
"MangaToday",
|
||||
"https://mangatoday.fun",
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.rateLimitHost(cdnHost, 1, 2)
|
||||
.build()
|
||||
|
||||
override val serverId = "m03"
|
||||
}
|
||||
|
|
|
@ -1,17 +1,11 @@
|
|||
package eu.kanade.tachiyomi.extension.en.mangatownhub
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangahub.MangaHub
|
||||
import eu.kanade.tachiyomi.network.interceptor.rateLimitHost
|
||||
import okhttp3.OkHttpClient
|
||||
|
||||
class MangaTownHub : MangaHub(
|
||||
"MangaTown (unoriginal)",
|
||||
"https://manga.town",
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.rateLimitHost(cdnHost, 1, 2)
|
||||
.build()
|
||||
|
||||
override val serverId = "mt01"
|
||||
}
|
||||
|
|
|
@ -1,17 +1,11 @@
|
|||
package eu.kanade.tachiyomi.extension.en.onemangaco
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangahub.MangaHub
|
||||
import eu.kanade.tachiyomi.network.interceptor.rateLimitHost
|
||||
import okhttp3.OkHttpClient
|
||||
|
||||
class OneMangaCo : MangaHub(
|
||||
"1Manga.co",
|
||||
"https://1manga.co",
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.rateLimitHost(cdnHost, 1, 2)
|
||||
.build()
|
||||
|
||||
override val serverId = "mn03"
|
||||
}
|
||||
|
|
|
@ -1,17 +1,11 @@
|
|||
package eu.kanade.tachiyomi.extension.en.onemangainfo
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangahub.MangaHub
|
||||
import eu.kanade.tachiyomi.network.interceptor.rateLimitHost
|
||||
import okhttp3.OkHttpClient
|
||||
|
||||
class OneMangaInfo : MangaHub(
|
||||
"OneManga.info",
|
||||
"https://onemanga.info",
|
||||
"en"
|
||||
) {
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.rateLimitHost(cdnHost, 1, 2)
|
||||
.build()
|
||||
|
||||
override val serverId = "mn02"
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package eu.kanade.tachiyomi.multisrc.mangahub
|
|||
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.network.POST
|
||||
import eu.kanade.tachiyomi.network.interceptor.rateLimitHost
|
||||
import eu.kanade.tachiyomi.source.model.Filter
|
||||
import eu.kanade.tachiyomi.source.model.FilterList
|
||||
import eu.kanade.tachiyomi.source.model.MangasPage
|
||||
|
@ -16,7 +17,9 @@ import kotlinx.serialization.decodeFromString
|
|||
import kotlinx.serialization.json.Json
|
||||
import kotlinx.serialization.json.JsonObject
|
||||
import kotlinx.serialization.json.jsonPrimitive
|
||||
import okhttp3.Headers
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import okhttp3.OkHttpClient
|
||||
import okhttp3.Request
|
||||
import okhttp3.RequestBody.Companion.toRequestBody
|
||||
import okhttp3.Response
|
||||
|
@ -41,7 +44,18 @@ abstract class MangaHub(
|
|||
|
||||
protected abstract val serverId: String
|
||||
|
||||
protected open val cdnHost = " https://img.mghubcdn.com/".toHttpUrl()
|
||||
protected open val cdnImgUrl = "https://img.mghubcdn.com"
|
||||
protected open val cdnApiUrl = "https://api.mghubcdn.com"
|
||||
|
||||
override val client: OkHttpClient by lazy {
|
||||
super.client.newBuilder()
|
||||
.rateLimitHost(cdnImgUrl.toHttpUrl(), 1, 2)
|
||||
.build()
|
||||
}
|
||||
|
||||
override fun headersBuilder(): Headers.Builder = super.headersBuilder()
|
||||
.add("Origin", baseUrl)
|
||||
.add("Referer", "$baseUrl/")
|
||||
|
||||
// Popular
|
||||
override fun popularMangaRequest(page: Int): Request =
|
||||
|
@ -234,11 +248,11 @@ abstract class MangaHub(
|
|||
null
|
||||
)
|
||||
|
||||
return POST("https://api.mghubcdn.com/graphql", jsonHeaders, body)
|
||||
return POST("$cdnApiUrl/graphql", jsonHeaders, body)
|
||||
}
|
||||
|
||||
override fun pageListParse(response: Response): List<Page> {
|
||||
val cdn = "https://img.mghubcdn.com/file/imghub"
|
||||
val cdn = "$cdnImgUrl/file/imghub"
|
||||
val chapterObject = json
|
||||
.decodeFromString<GraphQLDataDto<ChapterDto>>(response.body!!.string())
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ class MangaHubGenerator : ThemeSourceGenerator {
|
|||
|
||||
override val themeClass = "MangaHub"
|
||||
|
||||
override val baseVersionCode: Int = 3
|
||||
override val baseVersionCode: Int = 4
|
||||
|
||||
override val sources = listOf(
|
||||
SingleLang("1Manga.co", "https://1manga.co", "en", isNsfw = true, className = "OneMangaCo"),
|
||||
|
|
Loading…
Reference in New Issue