Add some sources (madara) (#8142)

* Add MangaxCore

* Add ClanMarcial

* Add MangaRomange

* Add TresDaosNet

* Add YetiskinRuyaManga

* Omit capture group

Co-authored-by: Vetle Ledaal <vetle.ledaal@gmail.com>

* Add required login check

---------

Co-authored-by: Vetle Ledaal <vetle.ledaal@gmail.com>
This commit is contained in:
Chopper 2025-03-21 14:27:47 -03:00 committed by Draff
parent f192dc994e
commit 91b33530ac
No known key found for this signature in database
GPG Key ID: E8A89F3211677653
35 changed files with 160 additions and 0 deletions

View File

@ -0,0 +1,10 @@
ext {
extName = 'Mangax Core'
extClass = '.MangaxCore'
themePkg = 'madara'
baseUrl = 'https://mangaxcore.xyz'
overrideVersionCode = 0
isNsfw = false
}
apply from: "$rootDir/common.gradle"

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -0,0 +1,20 @@
package eu.kanade.tachiyomi.extension.ar.mangaxcore
import eu.kanade.tachiyomi.multisrc.madara.Madara
import java.util.concurrent.TimeUnit
class MangaxCore : Madara(
"Mangax Core",
"https://mangaxcore.xyz",
"ar",
) {
override val client = super.client.newBuilder()
.connectTimeout(1, TimeUnit.MINUTES)
.readTimeout(1, TimeUnit.MINUTES)
.callTimeout(2, TimeUnit.MINUTES)
.build()
override val mangaSubString = "works"
override val useLoadMoreRequest = LoadMoreStrategy.Never
}

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 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: 20 KiB

View File

@ -0,0 +1,16 @@
package eu.kanade.tachiyomi.extension.es.clanmarcial
import eu.kanade.tachiyomi.multisrc.madara.Madara
import java.text.SimpleDateFormat
import java.util.Locale
class ClanMarcial : Madara(
"Clan Marcial",
"https://clanmarcial.com",
"es",
dateFormat = SimpleDateFormat("MMMM dd, yyyy", Locale("es")),
) {
override val useNewChapterEndpoint: Boolean = true
override val useLoadMoreRequest = LoadMoreStrategy.Never
}

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

View File

@ -0,0 +1,16 @@
package eu.kanade.tachiyomi.extension.es.mangaromance
import eu.kanade.tachiyomi.multisrc.madara.Madara
import java.text.SimpleDateFormat
import java.util.Locale
class MangaRomance : Madara(
"Manga Romance",
"https://mangaromance19.com",
"es",
dateFormat = SimpleDateFormat("dd MMMM, yyyy", Locale("es")),
) {
override val useNewChapterEndpoint: Boolean = true
override val useLoadMoreRequest = LoadMoreStrategy.Never
}

View File

@ -0,0 +1,10 @@
ext {
extName = 'Tres Daos Net'
extClass = '.TresDaosNet'
themePkg = 'madara'
baseUrl = 'https://tresdaos.net'
overrideVersionCode = 0
isNsfw = false
}
apply from: "$rootDir/common.gradle"

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1,11 @@
package eu.kanade.tachiyomi.extension.es.tresdaosnet
import eu.kanade.tachiyomi.multisrc.madara.Madara
class TresDaosNet : Madara(
"Tres Daos Net",
"https://tresdaos.net",
"es",
) {
override val useLoadMoreRequest = LoadMoreStrategy.Always
}

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View File

@ -0,0 +1,47 @@
package eu.kanade.tachiyomi.extension.tr.yetiskinruyamanga
import eu.kanade.tachiyomi.multisrc.madara.Madara
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter
import okhttp3.Response
import okio.IOException
import org.jsoup.nodes.Document
import java.text.SimpleDateFormat
import java.util.Locale
class YetiskinRuyaManga : Madara(
"Yetiskin Ruya Manga",
"https://www.yetiskinruyamanga.com",
"tr",
SimpleDateFormat("dd/MM/yyyy", Locale.ROOT),
) {
override val filterNonMangaItems = false
override val useLoadMoreRequest = LoadMoreStrategy.Always
override fun popularMangaRequest(page: Int) =
GET("$baseUrl/$mangaSubString/${searchPage(page)}?m_orderby=trending", headers)
override fun chapterListParse(response: Response): List<SChapter> {
return super.chapterListParse(response).map { chapter ->
chapter.apply {
CHAPTER_NUMBER_REGEX.find(name)?.groups?.get(0)?.value?.toFloat()?.let {
chapter_number = it
}
}
}.sortedByDescending(SChapter::chapter_number)
}
override fun pageListParse(document: Document): List<Page> {
val isLoginRequired = document.select(".content-blocked.login-required").isNotEmpty()
if (isLoginRequired) {
throw IOException("You may need to login via WebView")
}
return super.pageListParse(document)
}
companion object {
val CHAPTER_NUMBER_REGEX = """\d+(?:\.\d+)?""".toRegex()
}
}