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>
10
src/ar/mangaxcore/build.gradle
Normal 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"
|
BIN
src/ar/mangaxcore/res/mipmap-hdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
src/ar/mangaxcore/res/mipmap-mdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
src/ar/mangaxcore/res/mipmap-xhdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 6.1 KiB |
BIN
src/ar/mangaxcore/res/mipmap-xxhdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
src/ar/mangaxcore/res/mipmap-xxxhdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 18 KiB |
@ -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
|
||||
}
|
10
src/es/clanmarcial/build.gradle
Normal 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"
|
BIN
src/es/clanmarcial/res/mipmap-hdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
src/es/clanmarcial/res/mipmap-mdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
src/es/clanmarcial/res/mipmap-xhdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
BIN
src/es/clanmarcial/res/mipmap-xxhdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
src/es/clanmarcial/res/mipmap-xxxhdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 20 KiB |
@ -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
|
||||
}
|
10
src/es/mangaromance/build.gradle
Normal 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"
|
BIN
src/es/mangaromance/res/mipmap-hdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 7.4 KiB |
BIN
src/es/mangaromance/res/mipmap-mdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
src/es/mangaromance/res/mipmap-xhdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
src/es/mangaromance/res/mipmap-xxhdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
src/es/mangaromance/res/mipmap-xxxhdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 44 KiB |
@ -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
|
||||
}
|
10
src/es/tresdaosnet/build.gradle
Normal 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"
|
BIN
src/es/tresdaosnet/res/mipmap-hdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
src/es/tresdaosnet/res/mipmap-mdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
src/es/tresdaosnet/res/mipmap-xhdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
BIN
src/es/tresdaosnet/res/mipmap-xxhdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 9.0 KiB |
BIN
src/es/tresdaosnet/res/mipmap-xxxhdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 14 KiB |
@ -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
|
||||
}
|
10
src/tr/yetiskinruyamanga/build.gradle
Normal 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"
|
BIN
src/tr/yetiskinruyamanga/res/mipmap-hdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
BIN
src/tr/yetiskinruyamanga/res/mipmap-mdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
src/tr/yetiskinruyamanga/res/mipmap-xhdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
BIN
src/tr/yetiskinruyamanga/res/mipmap-xxhdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
src/tr/yetiskinruyamanga/res/mipmap-xxxhdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 23 KiB |
@ -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()
|
||||
}
|
||||
}
|