Add Magical Translators source (#7941)
This commit is contained in:
parent
8935d7b899
commit
2635d10527
Binary file not shown.
After Width: | Height: | Size: 3.0 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.5 KiB |
Binary file not shown.
After Width: | Height: | Size: 4.2 KiB |
Binary file not shown.
After Width: | Height: | Size: 8.6 KiB |
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
Binary file not shown.
After Width: | Height: | Size: 61 KiB |
|
@ -0,0 +1,42 @@
|
|||
package eu.kanade.tachiyomi.extension.all.magicaltranslators
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.guya.Guya
|
||||
import eu.kanade.tachiyomi.source.Source
|
||||
import eu.kanade.tachiyomi.source.SourceFactory
|
||||
import eu.kanade.tachiyomi.source.model.MangasPage
|
||||
import okhttp3.Response
|
||||
|
||||
class MagicalTranslatorsFactory : SourceFactory {
|
||||
override fun createSources(): List<Source> = listOf(
|
||||
MagicalTranslatorsEN(),
|
||||
MagicalTranslatorsPL(),
|
||||
)
|
||||
}
|
||||
|
||||
abstract class MagicalTranslatorsCommon(lang: String) :
|
||||
Guya("Magical Translators", "https://mahoushoujobu.com", lang) {
|
||||
protected abstract fun filterMangasPage(mangasPage: MangasPage): MangasPage
|
||||
override fun popularMangaParse(response: Response): MangasPage =
|
||||
filterMangasPage(super.popularMangaParse(response))
|
||||
|
||||
override fun proxySearchMangaParse(response: Response, slug: String): MangasPage =
|
||||
filterMangasPage(super.proxySearchMangaParse(response, slug))
|
||||
|
||||
override fun searchMangaParseWithSlug(response: Response, slug: String): MangasPage =
|
||||
filterMangasPage(super.searchMangaParseWithSlug(response, slug))
|
||||
|
||||
override fun searchMangaParse(response: Response, slug: String): MangasPage =
|
||||
filterMangasPage(super.searchMangaParse(response, slug))
|
||||
}
|
||||
|
||||
class MagicalTranslatorsEN : MagicalTranslatorsCommon("en") {
|
||||
override fun filterMangasPage(mangasPage: MangasPage): MangasPage = mangasPage.copy(
|
||||
mangas = mangasPage.mangas.filterNot { it.url.endsWith("-PL") }
|
||||
)
|
||||
}
|
||||
|
||||
class MagicalTranslatorsPL : MagicalTranslatorsCommon("pl") {
|
||||
override fun filterMangasPage(mangasPage: MangasPage): MangasPage = mangasPage.copy(
|
||||
mangas = mangasPage.mangas.filter { it.url.endsWith("-PL") }
|
||||
)
|
||||
}
|
|
@ -222,7 +222,7 @@ abstract class Guya(
|
|||
throw Exception("Unused.")
|
||||
}
|
||||
|
||||
private fun searchMangaParseWithSlug(response: Response, slug: String): MangasPage {
|
||||
protected open fun searchMangaParseWithSlug(response: Response, slug: String): MangasPage {
|
||||
val results = JSONObject(response.body!!.string())
|
||||
val mangaIter = results.keys()
|
||||
val truncatedJSON = JSONObject()
|
||||
|
@ -239,7 +239,7 @@ abstract class Guya(
|
|||
return parseManga(truncatedJSON)
|
||||
}
|
||||
|
||||
private fun searchMangaParse(response: Response, query: String): MangasPage {
|
||||
protected open fun searchMangaParse(response: Response, query: String): MangasPage {
|
||||
val res = response.body!!.string()
|
||||
val json = JSONObject(res)
|
||||
val truncatedJSON = JSONObject()
|
||||
|
@ -348,7 +348,7 @@ abstract class Guya(
|
|||
return proxySeriesRequest(query)
|
||||
}
|
||||
|
||||
private fun proxySearchMangaParse(response: Response, query: String): MangasPage {
|
||||
protected open fun proxySearchMangaParse(response: Response, query: String): MangasPage {
|
||||
return MangasPage(
|
||||
arrayListOf(parseMangaFromJson(JSONObject(response.body!!.string()), query)),
|
||||
false
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package eu.kanade.tachiyomi.multisrc.guya
|
||||
|
||||
import generator.ThemeSourceData.SingleLang
|
||||
import generator.ThemeSourceData.MultiLang
|
||||
import generator.ThemeSourceGenerator
|
||||
|
||||
class GuyaGenerator : ThemeSourceGenerator {
|
||||
|
@ -16,6 +17,7 @@ class GuyaGenerator : ThemeSourceGenerator {
|
|||
SingleLang("Danke fürs Lesen", "https://danke.moe", "en", className = "DankeFursLesen"),
|
||||
SingleLang("Colored Council", "https://coloredcouncil.moe", "en"),
|
||||
SingleLang("Hachirumi", "https://hachirumi.com", "en", isNsfw = true),
|
||||
MultiLang("Magical Translators", "https://mahoushoujobu.com", listOf("en", "pl"), className = "MagicalTranslatorsFactory"),
|
||||
)
|
||||
companion object {
|
||||
@JvmStatic
|
||||
|
|
Loading…
Reference in New Issue