Tachiyomi-Extensions/multisrc/overrides/madara/leviatanscans/src/LeviatanScansFactory.kt

60 lines
2.3 KiB
Kotlin

package eu.kanade.tachiyomi.extension.all.leviatanscans
import eu.kanade.tachiyomi.multisrc.madara.Madara
import eu.kanade.tachiyomi.source.Source
import eu.kanade.tachiyomi.source.SourceFactory
import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga
import org.jsoup.nodes.Element
class LeviatanScansFactory : SourceFactory {
override fun createSources(): List<Source> = listOf(
LeviatanScansEN(),
LeviatanScansES(),
)
}
class LeviatanScansEN : Madara("Leviatan Scans", "https://leviatanscans.com", "en") {
override val useNewChapterEndpoint: Boolean = true
override fun popularMangaFromElement(element: Element) =
replaceRandomUrlPartInManga(super.popularMangaFromElement(element))
override fun latestUpdatesFromElement(element: Element) =
replaceRandomUrlPartInManga(super.latestUpdatesFromElement(element))
override fun searchMangaFromElement(element: Element) =
replaceRandomUrlPartInManga(super.searchMangaFromElement(element))
override fun chapterFromElement(element: Element) =
replaceRandomUrlPartInChapter(super.chapterFromElement(element))
override val mangaDetailsSelectorDescription = "div.post-content div.manga-excerpt"
}
class LeviatanScansES : Madara("Leviatan Scans", "https://es.leviatanscans.com", "es") {
override val useNewChapterEndpoint: Boolean = true
override fun popularMangaFromElement(element: Element) =
replaceRandomUrlPartInManga(super.popularMangaFromElement(element))
override fun latestUpdatesFromElement(element: Element) =
replaceRandomUrlPartInManga(super.latestUpdatesFromElement(element))
override fun searchMangaFromElement(element: Element) =
replaceRandomUrlPartInManga(super.searchMangaFromElement(element))
override fun chapterFromElement(element: Element) =
replaceRandomUrlPartInChapter(super.chapterFromElement(element))
}
fun Madara.replaceRandomUrlPartInManga(manga: SManga): SManga {
val split = manga.url.split("/")
manga.url = split.slice(split.indexOf("manga") until split.size).joinToString("/", "/")
return manga
}
fun Madara.replaceRandomUrlPartInChapter(chapter: SChapter): SChapter {
val split = chapter.url.split("/")
chapter.url = baseUrl + split.slice(split.indexOf("manga") until split.size).joinToString("/", "/")
return chapter
}