mirror of
https://github.com/keiyoushi/extensions-source.git
synced 2024-11-26 04:03:01 +01:00
parent
ceed113eb9
commit
7a941a6ba4
@ -2,8 +2,8 @@ ext {
|
|||||||
extName = 'HolyManga'
|
extName = 'HolyManga'
|
||||||
extClass = '.HolyManga'
|
extClass = '.HolyManga'
|
||||||
themePkg = 'zbulu'
|
themePkg = 'zbulu'
|
||||||
baseUrl = 'https://w30.holymanga.net'
|
baseUrl = 'https://w33.holymanga.net'
|
||||||
overrideVersionCode = 2
|
overrideVersionCode = 3
|
||||||
isNsfw = true
|
isNsfw = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,4 +2,4 @@ package eu.kanade.tachiyomi.extension.en.holymanga
|
|||||||
|
|
||||||
import eu.kanade.tachiyomi.multisrc.zbulu.Zbulu
|
import eu.kanade.tachiyomi.multisrc.zbulu.Zbulu
|
||||||
|
|
||||||
class HolyManga : Zbulu("HolyManga", "https://w30.holymanga.net", "en")
|
class HolyManga : Zbulu("HolyManga", "https://w33.holymanga.net", "en")
|
||||||
|
@ -2,8 +2,8 @@ ext {
|
|||||||
extName = 'NekoScans'
|
extName = 'NekoScans'
|
||||||
extClass = '.NekoScans'
|
extClass = '.NekoScans'
|
||||||
themePkg = 'zeistmanga'
|
themePkg = 'zeistmanga'
|
||||||
baseUrl = 'https://nekoscanlationlector.blogspot.com'
|
baseUrl = 'https://www.nekoscans.org'
|
||||||
overrideVersionCode = 22
|
overrideVersionCode = 23
|
||||||
isNsfw = true
|
isNsfw = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,14 +2,12 @@ package eu.kanade.tachiyomi.extension.es.nekoscans
|
|||||||
|
|
||||||
import eu.kanade.tachiyomi.multisrc.zeistmanga.ZeistManga
|
import eu.kanade.tachiyomi.multisrc.zeistmanga.ZeistManga
|
||||||
import eu.kanade.tachiyomi.network.interceptor.rateLimit
|
import eu.kanade.tachiyomi.network.interceptor.rateLimit
|
||||||
import eu.kanade.tachiyomi.source.model.SManga
|
|
||||||
import eu.kanade.tachiyomi.util.asJsoup
|
|
||||||
import okhttp3.Response
|
import okhttp3.Response
|
||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
|
|
||||||
class NekoScans : ZeistManga(
|
class NekoScans : ZeistManga(
|
||||||
"NekoScans",
|
"NekoScans",
|
||||||
"https://nekoscanlationlector.blogspot.com",
|
"https://www.nekoscans.org",
|
||||||
"es",
|
"es",
|
||||||
) {
|
) {
|
||||||
// Theme changed from MangaThemesia to ZeistManga
|
// Theme changed from MangaThemesia to ZeistManga
|
||||||
@ -25,20 +23,5 @@ class NekoScans : ZeistManga(
|
|||||||
override fun popularMangaParse(response: Response) = latestUpdatesParse(response)
|
override fun popularMangaParse(response: Response) = latestUpdatesParse(response)
|
||||||
override val supportsLatest = false
|
override val supportsLatest = false
|
||||||
|
|
||||||
override fun mangaDetailsParse(response: Response) = SManga.create().apply {
|
|
||||||
val document = response.asJsoup()
|
|
||||||
document.selectFirst("header[itemprop=mainEntity]")!!.let { element ->
|
|
||||||
title = element.selectFirst("h1[itemprop=name]")!!.text()
|
|
||||||
thumbnail_url = element.selectFirst("img[itemprop=image]")!!.attr("src")
|
|
||||||
status = parseStatus(element.selectFirst("span[data-status]")!!.text())
|
|
||||||
genre = element.select("dl:has(dt:contains(Genre)) > dd > a[rel=tag]").joinToString { it.text() }
|
|
||||||
}
|
|
||||||
description = document.selectFirst("#synopsis, #sinop")!!.text()
|
|
||||||
document.selectFirst("div#extra-info")?.let { element ->
|
|
||||||
author = element.selectFirst("dl:has(dt:contains(Autor)) > dd")!!.text()
|
|
||||||
artist = element.selectFirst("dl:has(dt:contains(Artista)) > dd")!!.text()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override val pageListSelector = "div#readarea img"
|
override val pageListSelector = "div#readarea img"
|
||||||
}
|
}
|
||||||
|
@ -2,8 +2,8 @@ ext {
|
|||||||
extName = "UmeTruyen"
|
extName = "UmeTruyen"
|
||||||
extClass = ".UmeTruyen"
|
extClass = ".UmeTruyen"
|
||||||
themePkg = "manhwaz"
|
themePkg = "manhwaz"
|
||||||
baseUrl = "https://umetruyenz.com"
|
baseUrl = "https://umetruyenhay.net"
|
||||||
overrideVersionCode = 1
|
overrideVersionCode = 2
|
||||||
isNsfw = true
|
isNsfw = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ import eu.kanade.tachiyomi.multisrc.manhwaz.ManhwaZ
|
|||||||
|
|
||||||
class UmeTruyen : ManhwaZ(
|
class UmeTruyen : ManhwaZ(
|
||||||
"UmeTruyen",
|
"UmeTruyen",
|
||||||
"https://umetruyenz.com",
|
"https://umetruyenhay.net",
|
||||||
"vi",
|
"vi",
|
||||||
mangaDetailsAuthorHeading = "Tác giả",
|
mangaDetailsAuthorHeading = "Tác giả",
|
||||||
mangaDetailsStatusHeading = "Trạng thái",
|
mangaDetailsStatusHeading = "Trạng thái",
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
ext {
|
ext {
|
||||||
extName = "Ung Ty Comics"
|
extName = "Ung Ty Comics"
|
||||||
extClass = ".UngTyComics"
|
extClass = ".UngTyComics"
|
||||||
extVersionCode = 1
|
extVersionCode = 2
|
||||||
isNsfw = true
|
isNsfw = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package eu.kanade.tachiyomi.extension.vi.ungtycomics
|
package eu.kanade.tachiyomi.extension.vi.ungtycomics
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.preference.ListPreference
|
import androidx.preference.ListPreference
|
||||||
@ -15,14 +16,20 @@ import eu.kanade.tachiyomi.source.model.SManga
|
|||||||
import eu.kanade.tachiyomi.source.online.ParsedHttpSource
|
import eu.kanade.tachiyomi.source.online.ParsedHttpSource
|
||||||
import eu.kanade.tachiyomi.util.asJsoup
|
import eu.kanade.tachiyomi.util.asJsoup
|
||||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||||
|
import okhttp3.OkHttpClient
|
||||||
import okhttp3.Request
|
import okhttp3.Request
|
||||||
import okhttp3.Response
|
import okhttp3.Response
|
||||||
import org.jsoup.nodes.Document
|
import org.jsoup.nodes.Document
|
||||||
import org.jsoup.nodes.Element
|
import org.jsoup.nodes.Element
|
||||||
import uy.kohesive.injekt.Injekt
|
import uy.kohesive.injekt.Injekt
|
||||||
import uy.kohesive.injekt.api.get
|
import uy.kohesive.injekt.api.get
|
||||||
|
import java.security.SecureRandom
|
||||||
|
import java.security.cert.X509Certificate
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
|
import javax.net.ssl.SSLContext
|
||||||
|
import javax.net.ssl.TrustManager
|
||||||
|
import javax.net.ssl.X509TrustManager
|
||||||
|
|
||||||
class UngTyComics : ParsedHttpSource(), ConfigurableSource {
|
class UngTyComics : ParsedHttpSource(), ConfigurableSource {
|
||||||
|
|
||||||
@ -45,8 +52,25 @@ class UngTyComics : ParsedHttpSource(), ConfigurableSource {
|
|||||||
|
|
||||||
override val client = network.cloudflareClient.newBuilder()
|
override val client = network.cloudflareClient.newBuilder()
|
||||||
.rateLimitHost(baseUrl.toHttpUrl(), 2)
|
.rateLimitHost(baseUrl.toHttpUrl(), 2)
|
||||||
|
.ignoreAllSSLErrors()
|
||||||
.build()
|
.build()
|
||||||
|
|
||||||
|
private fun OkHttpClient.Builder.ignoreAllSSLErrors(): OkHttpClient.Builder {
|
||||||
|
val naiveTrustManager = @SuppressLint("CustomX509TrustManager")
|
||||||
|
object : X509TrustManager {
|
||||||
|
override fun getAcceptedIssuers(): Array<X509Certificate> = emptyArray()
|
||||||
|
override fun checkClientTrusted(certs: Array<X509Certificate>, authType: String) = Unit
|
||||||
|
override fun checkServerTrusted(certs: Array<X509Certificate>, authType: String) = Unit
|
||||||
|
}
|
||||||
|
val insecureSocketFactory = SSLContext.getInstance("TLSv1.2").apply {
|
||||||
|
val trustAllCerts = arrayOf<TrustManager>(naiveTrustManager)
|
||||||
|
init(null, trustAllCerts, SecureRandom())
|
||||||
|
}.socketFactory
|
||||||
|
sslSocketFactory(insecureSocketFactory, naiveTrustManager)
|
||||||
|
hostnameVerifier { _, _ -> true }
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
override fun headersBuilder() = super.headersBuilder()
|
override fun headersBuilder() = super.headersBuilder()
|
||||||
.add("Referer", "$baseUrl/")
|
.add("Referer", "$baseUrl/")
|
||||||
|
|
||||||
@ -184,7 +208,7 @@ class UngTyComics : ParsedHttpSource(), ConfigurableSource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private const val PREF_BASE_URL = "baseUrl"
|
private const val PREF_BASE_URL = "baseUrl"
|
||||||
private val MIRRORS = arrayOf("https://ungtycomicsvip.com", "https://topdammy.com")
|
private val MIRRORS = arrayOf("https://www.ungtycomics.io", "https://ungtycomicsvip.com", "https://topdammy.com")
|
||||||
private val DATE_FORMAT = SimpleDateFormat("dd-MM-yyyy", Locale.ROOT)
|
private val DATE_FORMAT = SimpleDateFormat("dd-MM-yyyy", Locale.ROOT)
|
||||||
|
|
||||||
private class GenreFilter(val genres: List<Genre>) : Filter.Select<String>(
|
private class GenreFilter(val genres: List<Genre>) : Filter.Select<String>(
|
||||||
|
Loading…
Reference in New Issue
Block a user