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()
|
||||||
|
}
|
||||||
|
}
|