Tachiyomi-Extensions/multisrc/overrides/madara/sinensis/src/SinensisScan.kt

57 lines
1.8 KiB
Kotlin

package eu.kanade.tachiyomi.extension.pt.sinensis
import eu.kanade.tachiyomi.multisrc.madara.Madara
import eu.kanade.tachiyomi.network.interceptor.rateLimit
import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga
import okhttp3.HttpUrl.Companion.toHttpUrl
import okhttp3.OkHttpClient
import org.jsoup.nodes.Element
import java.text.SimpleDateFormat
import java.util.Locale
import java.util.concurrent.TimeUnit
class SinensisScan : Madara(
"Sinensis Scan",
"https://sinensisscans.com",
"pt-BR",
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR")),
) {
// Name changed from Sinensis to Sinensis Scan
override val id: Long = 3891513807564817914
override val client: OkHttpClient = super.client.newBuilder()
.rateLimit(1, 2, TimeUnit.SECONDS)
.build()
override fun popularMangaFromElement(element: Element): SManga {
return super.popularMangaFromElement(element).apply {
setUrlWithoutDomain(url.removeBadPath("manga"))
}
}
override fun searchMangaFromElement(element: Element): SManga {
return super.searchMangaFromElement(element).apply {
setUrlWithoutDomain(url.removeBadPath("manga"))
}
}
override fun chapterFromElement(element: Element): SChapter {
return super.chapterFromElement(element).apply {
setUrlWithoutDomain(url.removeBadPath("manga"))
}
}
private fun String.removeBadPath(expectedFirstPath: String): String {
val fullUrl = if (contains(baseUrl)) this else (baseUrl + this)
val url = fullUrl.toHttpUrl()
if (url.pathSegments.firstOrNull() != expectedFirstPath) {
return url.newBuilder().removePathSegment(0).toString()
}
return url.toString()
}
}