Catharsis World: Update domain and theme (#7565)
* update theme * fix chapterlist edge case
This commit is contained in:
parent
72665ad48c
commit
732949510a
|
@ -1,9 +1,9 @@
|
||||||
ext {
|
ext {
|
||||||
extName = 'Catharsis World'
|
extName = 'Catharsis World'
|
||||||
extClass = '.CatharsisWorld'
|
extClass = '.CatharsisWorld'
|
||||||
themePkg = 'mangathemesia'
|
themePkg = 'madara'
|
||||||
baseUrl = 'https://catharsisworld.com'
|
baseUrl = 'https://catharsisworld.kawi.lat'
|
||||||
overrideVersionCode = 1
|
overrideVersionCode = 0
|
||||||
isNsfw = true
|
isNsfw = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,40 +1,57 @@
|
||||||
package eu.kanade.tachiyomi.extension.es.catharsisworld
|
package eu.kanade.tachiyomi.extension.es.catharsisworld
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||||
import eu.kanade.tachiyomi.multisrc.mangathemesia.MangaThemesia
|
import eu.kanade.tachiyomi.network.interceptor.rateLimitHost
|
||||||
import eu.kanade.tachiyomi.network.interceptor.rateLimit
|
import eu.kanade.tachiyomi.source.model.SChapter
|
||||||
import okhttp3.OkHttpClient
|
import eu.kanade.tachiyomi.source.model.SManga
|
||||||
import java.security.SecureRandom
|
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||||
import java.security.cert.X509Certificate
|
import org.jsoup.nodes.Element
|
||||||
import javax.net.ssl.SSLContext
|
|
||||||
import javax.net.ssl.TrustManager
|
|
||||||
import javax.net.ssl.X509TrustManager
|
|
||||||
|
|
||||||
class CatharsisWorld : MangaThemesia(
|
class CatharsisWorld : Madara(
|
||||||
"Catharsis World",
|
"Catharsis World",
|
||||||
"https://catharsisworld.com",
|
"https://catharsisworld.kawi.lat",
|
||||||
"es",
|
"es",
|
||||||
) {
|
) {
|
||||||
|
override val versionId = 2
|
||||||
|
|
||||||
|
override val mangaSubString = "serie"
|
||||||
|
|
||||||
|
override val useLoadMoreRequest = LoadMoreStrategy.Always
|
||||||
|
|
||||||
override val client = super.client.newBuilder()
|
override val client = super.client.newBuilder()
|
||||||
.rateLimit(3)
|
.rateLimitHost(baseUrl.toHttpUrl(), 3, 1)
|
||||||
.ignoreAllSSLErrors()
|
|
||||||
.build()
|
.build()
|
||||||
|
|
||||||
private fun OkHttpClient.Builder.ignoreAllSSLErrors(): OkHttpClient.Builder {
|
override fun popularMangaSelector() = "div.latest-poster"
|
||||||
val naiveTrustManager = @SuppressLint("CustomX509TrustManager")
|
|
||||||
object : X509TrustManager {
|
override fun popularMangaFromElement(element: Element) = SManga.create().apply {
|
||||||
override fun getAcceptedIssuers(): Array<X509Certificate> = emptyArray()
|
title = element.selectFirst("h3")!!.text()
|
||||||
override fun checkClientTrusted(certs: Array<X509Certificate>, authType: String) = Unit
|
thumbnail_url = element.selectFirst("a[style].bg-cover")?.imageFromStyle()
|
||||||
override fun checkServerTrusted(certs: Array<X509Certificate>, authType: String) = Unit
|
setUrlWithoutDomain(element.selectFirst("a")!!.attr("href"))
|
||||||
}
|
}
|
||||||
|
|
||||||
val insecureSocketFactory = SSLContext.getInstance("TLSv1.2").apply {
|
override fun searchMangaSelector() = "button.group > div.grid"
|
||||||
val trustAllCerts = arrayOf<TrustManager>(naiveTrustManager)
|
|
||||||
init(null, trustAllCerts, SecureRandom())
|
|
||||||
}.socketFactory
|
|
||||||
|
|
||||||
sslSocketFactory(insecureSocketFactory, naiveTrustManager)
|
override fun searchMangaFromElement(element: Element) = SManga.create().apply {
|
||||||
hostnameVerifier { _, _ -> true }
|
title = element.selectFirst("h3")!!.text()
|
||||||
return this
|
thumbnail_url = element.selectFirst("div[style].bg-cover")?.imageFromStyle()
|
||||||
|
setUrlWithoutDomain(element.selectFirst("a")!!.attr("href"))
|
||||||
|
}
|
||||||
|
|
||||||
|
override val mangaDetailsSelectorTitle = "div.wp-manga div.grid > h1"
|
||||||
|
override val mangaDetailsSelectorStatus = "div.wp-manga div[alt=type]:eq(0) > span"
|
||||||
|
override val mangaDetailsSelectorGenre = "div.wp-manga div[alt=type]:gt(0) > span"
|
||||||
|
override val mangaDetailsSelectorDescription = "div.wp-manga div#expand_content"
|
||||||
|
|
||||||
|
override fun chapterListSelector() = "ul#list-chapters li > a"
|
||||||
|
|
||||||
|
override fun chapterFromElement(element: Element) = SChapter.create().apply {
|
||||||
|
name = element.selectFirst("div.grid > span")!!.text()
|
||||||
|
date_upload = element.selectFirst("div.grid > div")?.text()?.let { parseChapterDate(it) } ?: 0
|
||||||
|
setUrlWithoutDomain(element.selectFirst("a")!!.attr("href"))
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun Element.imageFromStyle(): String {
|
||||||
|
return this.attr("style").substringAfter("url(").substringBefore(")")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue