Tachiyomi-Extensions/multisrc/overrides/madara/agentofchangetranslations/src/AgentofChangeTranslations.kt

44 lines
2.2 KiB
Kotlin
Raw Normal View History

package eu.kanade.tachiyomi.extension.en.agentofchangetranslations
import android.annotation.SuppressLint
import eu.kanade.tachiyomi.multisrc.madara.Madara
import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.util.asJsoup
import okhttp3.Headers
import okhttp3.Response
class AgentofChangeTranslations : Madara("Agent of Change Translations", "https://aoc.moe", "en") {
override fun headersBuilder(): Headers.Builder = super.headersBuilder().add("Referer", baseUrl)
override fun popularMangaSelector() = "div.page-item-detail.manga:has(span.chapter)"
override fun chapterListSelector() = "li.wp-manga-chapter:has(a)"
@SuppressLint("DefaultLocale")
override fun chapterListParse(response: Response): List<SChapter> {
return response.asJsoup().let { document ->
document.select(chapterListSelector()).let { normalChapters ->
if (normalChapters.isNotEmpty()) {
normalChapters.map { chapterFromElement(it) }
} else {
// For their "fancy" volume/chapter lists
document.select("div.wpb_wrapper:contains(volume) a")
.filter { it.attr("href").contains(baseUrl) && !it.attr("href").contains("imgur") }
.map { volumeChapter ->
SChapter.create().apply {
volumeChapter.attr("href").let { url ->
name = if (url.contains("volume")) {
val volume = url.substringAfter("volume-").substringBefore("/")
val volChap = url.substringAfter("volume-$volume/").substringBefore("/").replace("-", " ").capitalize()
"Volume $volume - $volChap"
} else {
url.substringBefore("/p").substringAfterLast("/").replace("-", " ").capitalize()
}
setUrlWithoutDomain(url.substringBefore("?") + "?style=list")
}
}
}
}.reversed()
}
}
}
}