Madara - add Drope Scan, QueensManga (#3346)
This commit is contained in:
parent
fbbe040ef8
commit
95a779335e
|
@ -5,8 +5,12 @@ ext {
|
||||||
appName = 'Tachiyomi: Madara (multiple sources)'
|
appName = 'Tachiyomi: Madara (multiple sources)'
|
||||||
pkgNameSuffix = "all.madara"
|
pkgNameSuffix = "all.madara"
|
||||||
extClass = '.MadaraFactory'
|
extClass = '.MadaraFactory'
|
||||||
extVersionCode = 100
|
extVersionCode = 101
|
||||||
libVersion = '1.2'
|
libVersion = '1.2'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation project(':lib-dataimage')
|
||||||
|
}
|
||||||
|
|
||||||
apply from: "$rootDir/common.gradle"
|
apply from: "$rootDir/common.gradle"
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
package eu.kanade.tachiyomi.extension.all.madara
|
package eu.kanade.tachiyomi.extension.all.madara
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
|
import eu.kanade.tachiyomi.lib.dataimage.DataImageInterceptor
|
||||||
|
import eu.kanade.tachiyomi.lib.dataimage.dataImageAsUrl
|
||||||
import eu.kanade.tachiyomi.network.GET
|
import eu.kanade.tachiyomi.network.GET
|
||||||
|
import eu.kanade.tachiyomi.network.asObservableSuccess
|
||||||
import eu.kanade.tachiyomi.source.Source
|
import eu.kanade.tachiyomi.source.Source
|
||||||
import eu.kanade.tachiyomi.source.SourceFactory
|
import eu.kanade.tachiyomi.source.SourceFactory
|
||||||
import eu.kanade.tachiyomi.source.model.Filter
|
import eu.kanade.tachiyomi.source.model.Filter
|
||||||
|
@ -20,6 +23,7 @@ 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 rx.Observable
|
||||||
|
|
||||||
class MadaraFactory : SourceFactory {
|
class MadaraFactory : SourceFactory {
|
||||||
override fun createSources(): List<Source> = listOf(
|
override fun createSources(): List<Source> = listOf(
|
||||||
|
@ -125,7 +129,9 @@ class MadaraFactory : SourceFactory {
|
||||||
DoujinYosh(),
|
DoujinYosh(),
|
||||||
Manga347(),
|
Manga347(),
|
||||||
RenaScans(),
|
RenaScans(),
|
||||||
WebtoonXYZ()
|
WebtoonXYZ(),
|
||||||
|
QueensManga(),
|
||||||
|
DropeScan()
|
||||||
// Removed by request of site owner
|
// Removed by request of site owner
|
||||||
// EarlyManga(),
|
// EarlyManga(),
|
||||||
// MangaGecesi(),
|
// MangaGecesi(),
|
||||||
|
@ -260,7 +266,24 @@ class AdonisFansub : Madara("Adonis Fansub", "https://manga.adonisfansub.com", "
|
||||||
override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl/manga/page/$page/?m_orderby=latest", headers)
|
override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl/manga/page/$page/?m_orderby=latest", headers)
|
||||||
}
|
}
|
||||||
|
|
||||||
class GetManhwa : Madara("GetManhwa", "https://getmanhwa.co", "en")
|
class GetManhwa : Madara("GetManhwa", "https://getmanhwa.co", "en") {
|
||||||
|
override fun fetchMangaDetails(manga: SManga): Observable<SManga> {
|
||||||
|
return client.newCall(mangaDetailsRequest(manga))
|
||||||
|
.asObservableSuccess()
|
||||||
|
.map { response ->
|
||||||
|
mangaDetailsParse(response.asJsoup(), manga).apply { initialized = true }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private fun mangaDetailsParse(document: Document, manga: SManga): SManga {
|
||||||
|
return SManga.create().apply {
|
||||||
|
if (manga.thumbnail_url.isNullOrEmpty()) thumbnail_url = searchMangaParse(client.newCall(searchMangaRequest(1, manga.title, FilterList())).execute())
|
||||||
|
.mangas.firstOrNull()?.thumbnail_url
|
||||||
|
author = document.select("div.summary-heading-creator a").joinToString { it.text() }
|
||||||
|
genre = document.select("div.genres-content a").joinToString { it.text() }
|
||||||
|
description = document.select("div.description-summary p").joinToString("\n") { it.text() }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class AllPornComic : Madara("AllPornComic", "https://allporncomic.com", "en") {
|
class AllPornComic : Madara("AllPornComic", "https://allporncomic.com", "en") {
|
||||||
override val client: OkHttpClient = network.client
|
override val client: OkHttpClient = network.client
|
||||||
|
@ -915,3 +938,20 @@ class Manga347 : Madara("Manga347", "https://manga347.com", "en", SimpleDateForm
|
||||||
override val pageListParseSelector = "li.blocks-gallery-item"
|
override val pageListParseSelector = "li.blocks-gallery-item"
|
||||||
}
|
}
|
||||||
class RenaScans : Madara("Renascence Scans (Renascans)", "https://new.renascans.com", "en", SimpleDateFormat("dd/MM/yyyy", Locale.US))
|
class RenaScans : Madara("Renascence Scans (Renascans)", "https://new.renascans.com", "en", SimpleDateFormat("dd/MM/yyyy", Locale.US))
|
||||||
|
|
||||||
|
class QueensManga : Madara("QueensManga ملكات المانجا", "https://queensmanga.com", "ar") {
|
||||||
|
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
|
||||||
|
.addInterceptor(DataImageInterceptor())
|
||||||
|
.build()
|
||||||
|
override fun chapterListSelector(): String = "div.listing-chapters_wrap a"
|
||||||
|
override fun pageListParse(document: Document): List<Page> {
|
||||||
|
return document.select("picture > source").mapIndexed { i, source ->
|
||||||
|
Page(i, "", source.dataImageAsUrl("srcset"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DropeScan : Madara("Drope Scan", "https://dropescan.com", "pt-BR") {
|
||||||
|
override fun popularMangaRequest(page: Int): Request = GET("$baseUrl/manga/page/$page/?m_orderby=views", headers)
|
||||||
|
override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl/manga/page/$page/?m_orderby=latest", headers)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue