Add new madara sources (#9489)

* Add madara source

* Remove icon 512.png
This commit is contained in:
Chopper 2025-07-02 05:10:41 -03:00 committed by Draff
parent 0284d48333
commit a5a70f4a31
Signed by: Draff
GPG Key ID: E8A89F3211677653
35 changed files with 214 additions and 0 deletions

View File

@ -0,0 +1,10 @@
ext {
extName = 'Manga Dass'
extClass = '.MangaDass'
themePkg = 'madara'
baseUrl = "https://mangadass.com"
overrideVersionCode = 0
isNsfw = true
}
apply from: "$rootDir/common.gradle"

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@ -0,0 +1,57 @@
package eu.kanade.tachiyomi.extension.en.mangadass
import eu.kanade.tachiyomi.multisrc.madara.Madara
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.interceptor.rateLimit
import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
import java.text.SimpleDateFormat
import java.util.Locale
class MangaDass : Madara(
"Manga Dass",
"https://mangadass.com",
"en",
SimpleDateFormat("dd MMM yyyy", Locale.US),
) {
override val client = super.client.newBuilder()
.rateLimit(3)
.build()
override val useLoadMoreRequest = LoadMoreStrategy.Never
override val filterNonMangaItems = false
override fun popularMangaRequest(page: Int) =
GET("$baseUrl/$mangaSubString/${searchPage(page)}?m_orderby=trending", headers)
override fun popularMangaFromElement(element: Element) = SManga.create().apply {
title = element.selectFirst("h3")!!.text()
thumbnail_url = element.selectFirst("img")?.absUrl("src")
setUrlWithoutDomain(element.selectFirst("a")!!.absUrl("href"))
}
override fun latestUpdatesRequest(page: Int) =
GET("$baseUrl/$mangaSubString/${searchPage(page)}?m_orderby=latest", headers)
override fun latestUpdatesFromElement(element: Element) = popularMangaFromElement(element)
override fun chapterListSelector() = ".row-content-chapter li"
override fun chapterFromElement(element: Element) = SChapter.create().apply {
with(element.selectFirst("a")!!) {
name = text()
setUrlWithoutDomain(absUrl("href"))
}
date_upload = parseChapterDate(element.selectFirst(".chapter-time")?.text())
}
override fun pageListParse(document: Document): List<Page> {
return document.select(".read-content img").mapIndexed { index, element ->
Page(index, imageUrl = element.absUrl("src"))
}
}
}

View File

@ -0,0 +1,10 @@
ext {
extName = 'Web Niichan'
extClass = '.WebNiichan'
themePkg = 'madara'
baseUrl = "https://webniichan.online"
overrideVersionCode = 0
isNsfw = false
}
apply from: "$rootDir/common.gradle"

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -0,0 +1,44 @@
package eu.kanade.tachiyomi.extension.en.webniichan
import android.annotation.SuppressLint
import eu.kanade.tachiyomi.multisrc.madara.Madara
import eu.kanade.tachiyomi.network.interceptor.rateLimit
import okhttp3.OkHttpClient
import java.security.SecureRandom
import java.security.cert.X509Certificate
import javax.net.ssl.SSLContext
import javax.net.ssl.TrustManager
import javax.net.ssl.X509TrustManager
class WebNiichan : Madara(
"Web Niichan",
"https://webniichan.online",
"en",
) {
override val client = super.client.newBuilder()
.rateLimit(3)
.ignoreAllSSLErrors()
.build()
override val useNewChapterEndpoint = true
override val useLoadMoreRequest = LoadMoreStrategy.Never
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
}
}

View File

@ -0,0 +1,10 @@
ext {
extName = 'Biblio Panda'
extClass = '.BiblioPanda'
themePkg = 'madara'
baseUrl = 'https://bibliopanda.com'
overrideVersionCode = 0
isNsfw = false
}
apply from: "$rootDir/common.gradle"

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@ -0,0 +1,21 @@
package eu.kanade.tachiyomi.extension.es.bibliopanda
import eu.kanade.tachiyomi.multisrc.madara.Madara
import eu.kanade.tachiyomi.network.interceptor.rateLimit
import java.text.SimpleDateFormat
import java.util.Locale
class BiblioPanda : Madara(
"Biblio Panda",
"https://bibliopanda.com",
"es",
SimpleDateFormat("MMMM dd, yyyy", Locale("es")),
) {
override val client = super.client.newBuilder()
.rateLimit(3)
.build()
override val useNewChapterEndpoint = true
override val useLoadMoreRequest = LoadMoreStrategy.Never
}

View File

@ -0,0 +1,10 @@
ext {
extName = 'Codex Zero'
extClass = '.CodexZero'
themePkg = 'madara'
baseUrl = 'https://codexzero.me'
overrideVersionCode = 0
isNsfw = false
}
apply from: "$rootDir/common.gradle"

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -0,0 +1,21 @@
package eu.kanade.tachiyomi.extension.es.codexzero
import eu.kanade.tachiyomi.multisrc.madara.Madara
import eu.kanade.tachiyomi.network.interceptor.rateLimit
import java.text.SimpleDateFormat
import java.util.Locale
class CodexZero : Madara(
"Codex Zero",
"https://codexzero.me",
"es",
SimpleDateFormat("dd/MM/yyyy", Locale.ROOT),
) {
override val client = super.client.newBuilder()
.rateLimit(3)
.build()
override val useNewChapterEndpoint = true
override val useLoadMoreRequest = LoadMoreStrategy.Always
}

View File

@ -0,0 +1,10 @@
ext {
extName = 'Kami Toon'
extClass = '.KamiToon'
themePkg = 'madara'
baseUrl = 'https://kamitoon.com.br'
overrideVersionCode = 0
isNsfw = true
}
apply from: "$rootDir/common.gradle"

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View File

@ -0,0 +1,21 @@
package eu.kanade.tachiyomi.extension.pt.kamitoon
import eu.kanade.tachiyomi.multisrc.madara.Madara
import eu.kanade.tachiyomi.network.interceptor.rateLimit
import java.text.SimpleDateFormat
import java.util.Locale
class KamiToon : Madara(
"Kami Toon",
"https://kamitoon.com.br",
"pt-BR",
SimpleDateFormat("dd 'de' MMM 'de' yyyy", Locale("pt", "BR")),
) {
override val client = super.client.newBuilder()
.rateLimit(3)
.build()
override val useNewChapterEndpoint = true
override val useLoadMoreRequest = LoadMoreStrategy.Never
}