56 lines
1.8 KiB
Kotlin
56 lines
1.8 KiB
Kotlin
package eu.kanade.tachiyomi.extension.all.leviatanscans
|
|
|
|
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
|
import eu.kanade.tachiyomi.source.model.SChapter
|
|
import eu.kanade.tachiyomi.source.model.SManga
|
|
import org.jsoup.nodes.Element
|
|
import java.text.SimpleDateFormat
|
|
|
|
abstract class LeviatanScans(
|
|
baseUrl: String,
|
|
lang: String,
|
|
dateFormat: SimpleDateFormat,
|
|
) : Madara(
|
|
"Leviatan Scans",
|
|
baseUrl,
|
|
lang,
|
|
dateFormat,
|
|
) {
|
|
override val useNewChapterEndpoint: Boolean = true
|
|
|
|
override fun chapterListSelector() = "li.wp-manga-chapter:not(.premium-block)"
|
|
|
|
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): SChapter {
|
|
val chapter = replaceRandomUrlPartInChapter(super.chapterFromElement(element))
|
|
|
|
with(element) {
|
|
selectFirst(chapterUrlSelector)?.let { urlElement ->
|
|
chapter.name = urlElement.ownText()
|
|
}
|
|
}
|
|
|
|
return chapter
|
|
}
|
|
|
|
private fun replaceRandomUrlPartInManga(manga: SManga): SManga {
|
|
val split = manga.url.split("/")
|
|
manga.url = split.slice(split.indexOf("manga") until split.size).joinToString("/", "/")
|
|
return manga
|
|
}
|
|
|
|
private fun replaceRandomUrlPartInChapter(chapter: SChapter): SChapter {
|
|
val split = chapter.url.split("/")
|
|
chapter.url = baseUrl + split.slice(split.indexOf("manga") until split.size).joinToString("/", "/")
|
|
return chapter
|
|
}
|
|
}
|