Madara - add sources, fix some chapter lists (#4153)

* Madara - add sources

* fix some chapters, remove Indiancomicsonline

* Add Wakascan
This commit is contained in:
Mike 2020-08-17 20:31:34 -04:00 committed by GitHub
parent 524562993c
commit dfc91f27b2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 61 additions and 6 deletions

View File

@ -5,7 +5,7 @@ ext {
extName = 'Madara (multiple sources)' extName = 'Madara (multiple sources)'
pkgNameSuffix = "all.madara" pkgNameSuffix = "all.madara"
extClass = '.MadaraFactory' extClass = '.MadaraFactory'
extVersionCode = 127 extVersionCode = 128
libVersion = '1.2' libVersion = '1.2'
containsNsfw = true containsNsfw = true
} }

View File

@ -379,7 +379,7 @@ abstract class Madara(
override fun chapterListParse(response: Response): List<SChapter> { override fun chapterListParse(response: Response): List<SChapter> {
val document = response.asJsoup() val document = response.asJsoup()
val dataIdSelector = "div#manga-chapters-holder" val dataIdSelector = "div[id^=manga-chapters-holder]"
return document.select(chapterListSelector()) return document.select(chapterListSelector())
.let { elements -> .let { elements ->

View File

@ -3,6 +3,7 @@ package eu.kanade.tachiyomi.extension.all.madara
import android.annotation.SuppressLint import android.annotation.SuppressLint
import eu.kanade.tachiyomi.annotations.Nsfw import eu.kanade.tachiyomi.annotations.Nsfw
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.POST
import eu.kanade.tachiyomi.network.asObservableSuccess 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
@ -46,7 +47,6 @@ class MadaraFactory : SourceFactory {
Hiperdex(), Hiperdex(),
HunterFansub(), HunterFansub(),
IchirinNoHanaYuri(), IchirinNoHanaYuri(),
Indiancomicsonline(),
IsekaiScanCom(), IsekaiScanCom(),
JustForFun(), JustForFun(),
KingzManga(), KingzManga(),
@ -151,7 +151,17 @@ class MadaraFactory : SourceFactory {
ToonilyNet(), ToonilyNet(),
BestManga(), BestManga(),
TwilightScans(), TwilightScans(),
DetectiveConanAr() DetectiveConanAr(),
WordExcerpt(),
WoopRead(),
Ninjavi(),
ManhwaTop(),
ImmortalUpdates(),
Bakaman(),
CatTranslator(),
ComicsValley(),
FriendlyTranslations(),
Wakascan()
// Removed by request of site owner // Removed by request of site owner
// EarlyManga(), // EarlyManga(),
// MangaGecesi(), // MangaGecesi(),
@ -307,8 +317,6 @@ class ManwahentaiMe : Madara("Manwahentai.me", "https://manhwahentai.me", "en")
class Manga3asq : Madara("مانجا العاشق", "https://3asq.org", "ar") class Manga3asq : Madara("مانجا العاشق", "https://3asq.org", "ar")
class Indiancomicsonline : Madara("Indian Comics Online", "http://www.indiancomicsonline.com", "hi")
class AdonisFansub : Madara("Adonis Fansub", "https://manga.adonisfansub.com", "tr") { class AdonisFansub : Madara("Adonis Fansub", "https://manga.adonisfansub.com", "tr") {
override val userAgentRandomizer = "" override val userAgentRandomizer = ""
override fun popularMangaRequest(page: Int): Request = GET("$baseUrl/manga/page/$page/?m_orderby=views", headers) override fun popularMangaRequest(page: Int): Request = GET("$baseUrl/manga/page/$page/?m_orderby=views", headers)
@ -334,6 +342,7 @@ class GetManhwa : Madara("GetManhwa", "https://getmanhwa.co", "en") {
} }
} }
@Nsfw
class AllPornComic : Madara("AllPornComic", "https://allporncomic.com", "en") { class AllPornComic : Madara("AllPornComic", "https://allporncomic.com", "en") {
override fun popularMangaRequest(page: Int): Request = GET("$baseUrl/manga/page/$page/?m_orderby=views", headers) 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) override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl/manga/page/$page/?m_orderby=latest", headers)
@ -520,6 +529,7 @@ class Hiperdex : Madara("Hiperdex", "https://hiperdex.com", "en") {
) )
} }
@Nsfw
class DoujinHentai : Madara("DoujinHentai", "https://doujinhentai.net", "es", SimpleDateFormat("d MMM. yyyy", Locale.ENGLISH)) { class DoujinHentai : Madara("DoujinHentai", "https://doujinhentai.net", "es", SimpleDateFormat("d MMM. yyyy", Locale.ENGLISH)) {
override fun popularMangaRequest(page: Int): Request = GET("$baseUrl/lista-manga-hentai?orderby=views&page=$page", headers) override fun popularMangaRequest(page: Int): Request = GET("$baseUrl/lista-manga-hentai?orderby=views&page=$page", headers)
override fun popularMangaSelector() = "div.col-md-3 a" override fun popularMangaSelector() = "div.col-md-3 a"
@ -851,6 +861,7 @@ class NeoxScanlator : Madara("Neox Scanlator", "https://neoxscans.com", "pt-BR",
class MangaLord : Madara("Manga Lord", "https://mangalord.com", "en") class MangaLord : Madara("Manga Lord", "https://mangalord.com", "en")
@Nsfw
class PornComix : Madara("PornComix", "https://www.porncomixonline.net", "en") class PornComix : Madara("PornComix", "https://www.porncomixonline.net", "en")
class PMScans : Madara("PMScans", "http://www.pmscans.com", "en") class PMScans : Madara("PMScans", "http://www.pmscans.com", "en")
@ -975,6 +986,7 @@ class ArangScans : Madara("Arang Scans", "https://www.arangscans.com", "en", Sim
override fun latestUpdatesNextPageSelector(): String? = null override fun latestUpdatesNextPageSelector(): String? = null
} }
@Nsfw
class MangaHentai : Madara("Manga Hentai", "https://mangahentai.me", "en") class MangaHentai : Madara("Manga Hentai", "https://mangahentai.me", "en")
class MangaPhoenix : Madara("Manga Diyari", "https://mangadiyari.com", "tr") { class MangaPhoenix : Madara("Manga Diyari", "https://mangadiyari.com", "tr") {
@ -1207,3 +1219,46 @@ class BestManga : Madara("BestManga", "https://bestmanga.club", "ru", SimpleDate
class TwilightScans : Madara("Twilight Scans", "https://twilightscans.com", "en") class TwilightScans : Madara("Twilight Scans", "https://twilightscans.com", "en")
class DetectiveConanAr : Madara("شبكة كونان العربية", "https://www.manga.detectiveconanar.com", "ar") class DetectiveConanAr : Madara("شبكة كونان العربية", "https://www.manga.detectiveconanar.com", "ar")
// mostly novels, doesn't include year in chapter dates (even for past years)
class WordExcerpt : Madara("Word Excerpt", "https://wordexcerpt.com", "en") {
override fun popularMangaRequest(page: Int): Request = GET("$baseUrl/archive/webtoon/page/$page/?m_orderby=views", headers)
override fun popularMangaNextPageSelector() = "div.nav-previous a"
override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl/archive/webtoon/page/$page/?m_orderby=latest", headers)
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request = GET("$baseUrl/?s=the&post_type=wp-manga&genre[]=webtoon", headers)
override fun getFilterList(): FilterList = FilterList()
}
// mostly novels
class WoopRead : Madara("WoopRead", "https://woopread.com", "en") {
override fun popularMangaRequest(page: Int): Request = GET("$baseUrl/?s&post_type=wp-manga&genre[0]=manhua&genre[1]=manhwa&m_orderby=views", headers)
override fun popularMangaParse(response: Response) = searchMangaParse(response)
override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl/?s&post_type=wp-manga&genre[0]=manhua&genre[1]=manhwa&m_orderby=latest", headers)
override fun latestUpdatesParse(response: Response) = searchMangaParse(response)
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request =
GET("$baseUrl/?s=$query&post_type=wp-manga&genre[0]=manhua&genre[1]=manhwa&m_orderby=latest", headers)
override fun getFilterList(): FilterList = FilterList()
}
class Ninjavi : Madara("Ninjavi", "https://ninjavi.com", "ar")
class ManhwaTop : Madara("Manhwatop", "https://manhwatop.com", "en")
class ImmortalUpdates : Madara("Immortal Updates", "https://immortalupdates.com", "en")
class Bakaman : Madara("Bakaman", "https://bakaman.net", "th")
class CatTranslator : Madara("CAT-translator", "https://cat-translator.com", "th") {
override fun popularMangaRequest(page: Int): Request =
POST("$baseUrl/manga/wp-admin/admin-ajax.php", formHeaders, formBuilder(page, true).build(), CacheControl.FORCE_NETWORK)
override fun latestUpdatesRequest(page: Int): Request =
POST("$baseUrl/manga/wp-admin/admin-ajax.php", formHeaders, formBuilder(page, false).build(), CacheControl.FORCE_NETWORK)
override fun searchPage(page: Int): String = "manga/page/$page/"
}
@Nsfw
class ComicsValley : Madara("Comics Valley", "https://comicsvalley.com", "hi")
class FriendlyTranslations : Madara("Friendly Translations", "https://friendlytranslationsscan.website", "en")
class Wakascan : Madara("Wakascan", "https://wakascan.com", "fr")