Fix some sources

add @Broken on sources
Close #927
master
devi 2 years ago
parent b9d89edfc2
commit 26c3edbc17

@ -5,6 +5,7 @@ import okhttp3.Interceptor
import okhttp3.Response import okhttp3.Response
import org.json.JSONArray import org.json.JSONArray
import org.json.JSONObject import org.json.JSONObject
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.PagedMangaParser import org.koitharu.kotatsu.parsers.PagedMangaParser
@ -18,11 +19,12 @@ import org.koitharu.kotatsu.parsers.util.json.toJSONList
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
@MangaSourceParser("NINENINENINEHENTAI", "999Hentai", type = ContentType.HENTAI) @Broken
@MangaSourceParser("NINENINENINEHENTAI", "AnimeH", type = ContentType.HENTAI)
internal class NineNineNineHentaiParser(context: MangaLoaderContext) : internal class NineNineNineHentaiParser(context: MangaLoaderContext) :
PagedMangaParser(context, MangaParserSource.NINENINENINEHENTAI, size), Interceptor { PagedMangaParser(context, MangaParserSource.NINENINENINEHENTAI, size), Interceptor {
override val configKeyDomain = ConfigKey.Domain("999hentai.net") override val configKeyDomain = ConfigKey.Domain("animeh.to")
override val availableSortOrders: EnumSet<SortOrder> = EnumSet.of( override val availableSortOrders: EnumSet<SortOrder> = EnumSet.of(
SortOrder.POPULARITY, SortOrder.POPULARITY,
@ -377,7 +379,7 @@ internal class NineNineNineHentaiParser(context: MangaLoaderContext) :
} }
private suspend fun apiCall(query: String): JSONObject { private suspend fun apiCall(query: String): JSONObject {
return webClient.graphQLQuery("https://hapi.$domain/api", query).getJSONObject("data") return webClient.graphQLQuery("https://api.$domain/api", query).getJSONObject("data")
} }
companion object { companion object {

@ -20,7 +20,7 @@ internal class TeamXNovel(context: MangaLoaderContext) : PagedMangaParser(contex
override val availableStates: Set<MangaState> = override val availableStates: Set<MangaState> =
EnumSet.of(MangaState.ONGOING, MangaState.FINISHED, MangaState.ABANDONED) EnumSet.of(MangaState.ONGOING, MangaState.FINISHED, MangaState.ABANDONED)
override val configKeyDomain = ConfigKey.Domain("teamxnovel.com") override val configKeyDomain = ConfigKey.Domain("teamoney.site")
override val isMultipleTagsSupported = false override val isMultipleTagsSupported = false
override suspend fun getListPage(page: Int, filter: MangaListFilter?): List<Manga> { override suspend fun getListPage(page: Int, filter: MangaListFilter?): List<Manga> {

@ -17,7 +17,7 @@ internal class MangaGeko(context: MangaLoaderContext) : PagedMangaParser(context
override val availableSortOrders: Set<SortOrder> = override val availableSortOrders: Set<SortOrder> =
EnumSet.of(SortOrder.POPULARITY, SortOrder.UPDATED, SortOrder.NEWEST) EnumSet.of(SortOrder.POPULARITY, SortOrder.UPDATED, SortOrder.NEWEST)
override val configKeyDomain = ConfigKey.Domain("www.mgeko.com", "www.mangageko.com") override val configKeyDomain = ConfigKey.Domain("www.mgeko.cc", "www.mgeko.com", "www.mangageko.com")
override val isMultipleTagsSupported = false override val isMultipleTagsSupported = false

@ -3,6 +3,7 @@ package org.koitharu.kotatsu.parsers.site.en
import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.coroutineScope
import okhttp3.Headers import okhttp3.Headers
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.PagedMangaParser import org.koitharu.kotatsu.parsers.PagedMangaParser
@ -14,6 +15,7 @@ import org.koitharu.kotatsu.parsers.util.json.mapJSON
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
@Broken
@MangaSourceParser("MANGAOWL", "MangaOwl.to", "en") @MangaSourceParser("MANGAOWL", "MangaOwl.to", "en")
internal class Mangaowl(context: MangaLoaderContext) : internal class Mangaowl(context: MangaLoaderContext) :
PagedMangaParser(context, MangaParserSource.MANGAOWL, pageSize = 24) { PagedMangaParser(context, MangaParserSource.MANGAOWL, pageSize = 24) {

@ -8,7 +8,7 @@ import org.koitharu.kotatsu.parsers.util.*
@MangaSourceParser("OLIMPOSCANS", "OlimpoScans", "es") @MangaSourceParser("OLIMPOSCANS", "OlimpoScans", "es")
internal class OlimpoScans(context: MangaLoaderContext) : internal class OlimpoScans(context: MangaLoaderContext) :
FmreaderParser(context, MangaParserSource.OLIMPOSCANS, "olimposcans.com") { FmreaderParser(context, MangaParserSource.OLIMPOSCANS, "leerolimpo.com") {
override val selectState = "ul.manga-info li:contains(Estado) a" override val selectState = "ul.manga-info li:contains(Estado) a"
override val selectAlt = "ul.manga-info li:contains(Otros nombres)" override val selectAlt = "ul.manga-info li:contains(Otros nombres)"

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.foolslide.en package org.koitharu.kotatsu.parsers.site.foolslide.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.foolslide.FoolSlideParser import org.koitharu.kotatsu.parsers.site.foolslide.FoolSlideParser
@Broken
@MangaSourceParser("READER_EVILFLOWERS", "Evil Flowers", "en") @MangaSourceParser("READER_EVILFLOWERS", "Evil Flowers", "en")
internal class ReaderEvilflowers(context: MangaLoaderContext) : internal class ReaderEvilflowers(context: MangaLoaderContext) :
FoolSlideParser(context, MangaParserSource.READER_EVILFLOWERS, "reader.evilflowers.com") FoolSlideParser(context, MangaParserSource.READER_EVILFLOWERS, "reader.evilflowers.com")

@ -7,4 +7,4 @@ import org.koitharu.kotatsu.parsers.site.keyoapp.KeyoappParser
@MangaSourceParser("STARBOUNDSCANS", "StarboundScans", "fr") @MangaSourceParser("STARBOUNDSCANS", "StarboundScans", "fr")
internal class StarboundScans(context: MangaLoaderContext) : internal class StarboundScans(context: MangaLoaderContext) :
KeyoappParser(context, MangaParserSource.STARBOUNDSCANS, "starboundscans.org") KeyoappParser(context, MangaParserSource.STARBOUNDSCANS, "starboundscans.com")

@ -1,5 +1,6 @@
package org.koitharu.kotatsu.parsers.site.madara.all package org.koitharu.kotatsu.parsers.site.madara.all
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.ContentType import org.koitharu.kotatsu.parsers.model.ContentType
@ -7,6 +8,7 @@ import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
import java.util.* import java.util.*
@Broken
@MangaSourceParser("MANGATOP", "MangaTop", "", ContentType.HENTAI) @MangaSourceParser("MANGATOP", "MangaTop", "", ContentType.HENTAI)
internal class MangaTop(context: MangaLoaderContext) : internal class MangaTop(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.MANGATOP, "mangatop.site") { MadaraParser(context, MangaParserSource.MANGATOP, "mangatop.site") {

@ -0,0 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.ar
import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("CROWSCANS", "Hadess", "ar")
internal class CrowScans(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.CROWSCANS, "www.hadess.xyz") {
override val datePattern = "dd MMMM، yyyy"
}

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.ar package org.koitharu.kotatsu.parsers.site.madara.ar
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("MANGASPARK", "Manga-Spark", "ar") @MangaSourceParser("MANGASPARK", "Manga-Spark", "ar")
internal class Mangaspark(context: MangaLoaderContext) : internal class Mangaspark(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.MANGASPARK, "manga-spark.com", pageSize = 10) { MadaraParser(context, MangaParserSource.MANGASPARK, "manga-spark.com", pageSize = 10) {

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.ar package org.koitharu.kotatsu.parsers.site.madara.ar
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("SHADOWXMANGA", "ShadowXManga", "ar") @MangaSourceParser("SHADOWXMANGA", "ShadowXManga", "ar")
internal class ShadowxManga(context: MangaLoaderContext) : internal class ShadowxManga(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.SHADOWXMANGA, "www.shadowxmanga.com") { MadaraParser(context, MangaParserSource.SHADOWXMANGA, "www.shadowxmanga.com") {

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.ar package org.koitharu.kotatsu.parsers.site.madara.ar
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("WEBTOONEMPIRE", "WebtoonEmpire", "ar") @MangaSourceParser("WEBTOONEMPIRE", "WebtoonEmpire", "ar")
internal class WebtoonEmpire(context: MangaLoaderContext) : internal class WebtoonEmpire(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.WEBTOONEMPIRE, "webtoonsempireron.com", pageSize = 10) { MadaraParser(context, MangaParserSource.WEBTOONEMPIRE, "webtoonsempireron.com", pageSize = 10) {

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.de package org.koitharu.kotatsu.parsers.site.madara.de
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("MANGALESEN", "MangaLesen", "de") @MangaSourceParser("MANGALESEN", "MangaLesen", "de")
internal class MangaLesen(context: MangaLoaderContext) : internal class MangaLesen(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.MANGALESEN, "mangalesen.net") MadaraParser(context, MangaParserSource.MANGALESEN, "mangalesen.net")

@ -7,4 +7,7 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("ASURASCANS_US", "AsuraScans.us", "en") @MangaSourceParser("ASURASCANS_US", "AsuraScans.us", "en")
internal class AsuraScansUs(context: MangaLoaderContext) : internal class AsuraScansUs(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.ASURASCANS_US, "asurascans.us") MadaraParser(context, MangaParserSource.ASURASCANS_US, "asurascans.us") {
override val listUrl = "comics/"
override val tagPrefix = "read-en-us-genre/"
}

@ -7,6 +7,6 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("COLORED_MANGA", "ColoredManga", "en") @MangaSourceParser("COLORED_MANGA", "ColoredManga", "en")
internal class ColoredManga(context: MangaLoaderContext) : internal class ColoredManga(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.COLORED_MANGA, "coloredmanga.com") { MadaraParser(context, MangaParserSource.COLORED_MANGA, "coloredmanga.net") {
override val datePattern = "dd-MMM" override val datePattern = "dd-MMM"
} }

@ -1,11 +1,13 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.ContentType import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("DUCKMANGA", "DuckManga", "en", ContentType.HENTAI) @MangaSourceParser("DUCKMANGA", "DuckManga", "en", ContentType.HENTAI)
internal class DuckManga(context: MangaLoaderContext) : internal class DuckManga(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.DUCKMANGA, "duckmanga.com", 20) MadaraParser(context, MangaParserSource.DUCKMANGA, "duckmanga.com", 20)

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("FREEWEBTOONCOINS", "FreeWebtoonCoins", "en") @MangaSourceParser("FREEWEBTOONCOINS", "FreeWebtoonCoins", "en")
internal class FreeWebtoonCoins(context: MangaLoaderContext) : internal class FreeWebtoonCoins(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.FREEWEBTOONCOINS, "freewebtooncoins.com") { MadaraParser(context, MangaParserSource.FREEWEBTOONCOINS, "freewebtooncoins.com") {

@ -1,11 +1,13 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.ContentType import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("HIPERDEX", "HiperDex", "en", ContentType.HENTAI) @MangaSourceParser("HIPERDEX", "HiperDex", "en", ContentType.HENTAI)
internal class HiperDex(context: MangaLoaderContext) : internal class HiperDex(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.HIPERDEX, "hiperdex.com", 36) MadaraParser(context, MangaParserSource.HIPERDEX, "hiperdex.com", 36)

@ -1,11 +1,13 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.ContentType import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("LOLICONMOBI", "LoliconMobi", "en", ContentType.HENTAI) @MangaSourceParser("LOLICONMOBI", "LoliconMobi", "en", ContentType.HENTAI)
internal class LoliconMobi(context: MangaLoaderContext) : internal class LoliconMobi(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.LOLICONMOBI, "lolicon.mobi") { MadaraParser(context, MangaParserSource.LOLICONMOBI, "lolicon.mobi") {

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("LUFFYMANGA", "LuffyManga", "en") @MangaSourceParser("LUFFYMANGA", "LuffyManga", "en")
internal class LuffyManga(context: MangaLoaderContext) : internal class LuffyManga(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.LUFFYMANGA, "luffymanga.com", 10) MadaraParser(context, MangaParserSource.LUFFYMANGA, "luffymanga.com", 10)

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("MANGA1001", "Manga1001", "en") @MangaSourceParser("MANGA1001", "Manga1001", "en")
internal class Manga1001(context: MangaLoaderContext) : internal class Manga1001(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.MANGA1001, "manga-1001.com", 10) MadaraParser(context, MangaParserSource.MANGA1001, "manga-1001.com", 10)

@ -1,11 +1,13 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.ContentType import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("MANGA1K", "Manga1k", "en", ContentType.HENTAI) @MangaSourceParser("MANGA1K", "Manga1k", "en", ContentType.HENTAI)
internal class Manga1k(context: MangaLoaderContext) : internal class Manga1k(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.MANGA1K, "manga1k.com", 20) { MadaraParser(context, MangaParserSource.MANGA1K, "manga1k.com", 20) {

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("MANGA68", "Manga68", "en") @MangaSourceParser("MANGA68", "Manga68", "en")
internal class Manga68(context: MangaLoaderContext) : internal class Manga68(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.MANGA68, "manga68.com") { MadaraParser(context, MangaParserSource.MANGA68, "manga68.com") {

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("MANGAACTION", "MangaAction", "en") @MangaSourceParser("MANGAACTION", "MangaAction", "en")
internal class MangaAction(context: MangaLoaderContext) : internal class MangaAction(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.MANGAACTION, "mangaaction.com") MadaraParser(context, MangaParserSource.MANGAACTION, "mangaaction.com")

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("MANGABOB", "MangaBob", "en") @MangaSourceParser("MANGABOB", "MangaBob", "en")
internal class MangaBob(context: MangaLoaderContext) : internal class MangaBob(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.MANGABOB, "mangabob.com") { MadaraParser(context, MangaParserSource.MANGABOB, "mangabob.com") {

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("MANGACULTIVATOR", "MangaCultivator", "en") @MangaSourceParser("MANGACULTIVATOR", "MangaCultivator", "en")
internal class MangaCultivator(context: MangaLoaderContext) : internal class MangaCultivator(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.MANGACULTIVATOR, "mangacultivator.com", 10) MadaraParser(context, MangaParserSource.MANGACULTIVATOR, "mangacultivator.com", 10)

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("MANGAOWLBLOG", "MangaOwlnet.com", "en") @MangaSourceParser("MANGAOWLBLOG", "MangaOwlnet.com", "en")
internal class MangaOwlBlog(context: MangaLoaderContext) : internal class MangaOwlBlog(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.MANGAOWLBLOG, "mangaowlnet.com") MadaraParser(context, MangaParserSource.MANGAOWLBLOG, "mangaowlnet.com")

@ -1,11 +1,13 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.ContentType import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("MANGAOWL_US", "MangaOwlYaoi", "en", ContentType.HENTAI) @MangaSourceParser("MANGAOWL_US", "MangaOwlYaoi", "en", ContentType.HENTAI)
internal class MangaOwlUs(context: MangaLoaderContext) : internal class MangaOwlUs(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.MANGAOWL_US, "mangaowlyaoi.com") MadaraParser(context, MangaParserSource.MANGAOWL_US, "mangaowlyaoi.com")

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("MANGARUBY", "MangaRuby", "en") @MangaSourceParser("MANGARUBY", "MangaRuby", "en")
internal class MangaRuby(context: MangaLoaderContext) : internal class MangaRuby(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.MANGARUBY, "mangaruby.com", 10) MadaraParser(context, MangaParserSource.MANGARUBY, "mangaruby.com", 10)

@ -1,11 +1,13 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.ContentType import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("MANGARYU", "MangaRyu", "en", ContentType.HENTAI) @MangaSourceParser("MANGARYU", "MangaRyu", "en", ContentType.HENTAI)
internal class MangaRyu(context: MangaLoaderContext) : internal class MangaRyu(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.MANGARYU, "mangaryu.com", 10) MadaraParser(context, MangaParserSource.MANGARYU, "mangaryu.com", 10)

@ -1,11 +1,13 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.ContentType import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("MANGAOWL_ONE", "MangaOwl.one", "en", ContentType.HENTAI) @MangaSourceParser("MANGAOWL_ONE", "MangaOwl.one", "en", ContentType.HENTAI)
internal class MangaowlOne(context: MangaLoaderContext) : internal class MangaowlOne(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.MANGAOWL_ONE, "mangaowl.one") { MadaraParser(context, MangaParserSource.MANGAOWL_ONE, "mangaowl.one") {

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("MANGASY", "Mangasy", "en") @MangaSourceParser("MANGASY", "Mangasy", "en")
internal class Mangasy(context: MangaLoaderContext) : internal class Mangasy(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.MANGASY, "www.mangasy.com") { MadaraParser(context, MangaParserSource.MANGASY, "www.mangasy.com") {

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("MANGAUS", "Mangaus", "en") @MangaSourceParser("MANGAUS", "Mangaus", "en")
internal class Mangaus(context: MangaLoaderContext) : internal class Mangaus(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.MANGAUS, "mangaus.xyz") { MadaraParser(context, MangaParserSource.MANGAUS, "mangaus.xyz") {

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("MANHUASY", "ManhuaSy", "en") @MangaSourceParser("MANHUASY", "ManhuaSy", "en")
internal class Manhuasy(context: MangaLoaderContext) : internal class Manhuasy(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.MANHUASY, "www.manhuasy.com") { MadaraParser(context, MangaParserSource.MANHUASY, "www.manhuasy.com") {

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("MANHUAUSS", "Manhuauss", "en") @MangaSourceParser("MANHUAUSS", "Manhuauss", "en")
internal class Manhuauss(context: MangaLoaderContext) : internal class Manhuauss(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.MANHUAUSS, "manhuauss.com") { MadaraParser(context, MangaParserSource.MANHUAUSS, "manhuauss.com") {

@ -1,11 +1,13 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.ContentType import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("MANHWA18APP", "Manhwa18.app", "en", ContentType.HENTAI) @MangaSourceParser("MANHWA18APP", "Manhwa18.app", "en", ContentType.HENTAI)
internal class Manhwa18App(context: MangaLoaderContext) : internal class Manhwa18App(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.MANHWA18APP, "manhwa18.app") { MadaraParser(context, MangaParserSource.MANHWA18APP, "manhwa18.app") {

@ -1,14 +1,113 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import kotlinx.coroutines.async
import kotlinx.coroutines.coroutineScope
import org.jsoup.nodes.Document
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.ContentType import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.Manga
import org.koitharu.kotatsu.parsers.model.MangaChapter
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.model.MangaState
import org.koitharu.kotatsu.parsers.model.MangaTag
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
import org.koitharu.kotatsu.parsers.util.*
import java.text.SimpleDateFormat
@MangaSourceParser("MANHWAHENTAI", "ManhwaHentai", "en", ContentType.HENTAI) @MangaSourceParser("MANHWAHENTAI", "ManhwaHentai", "en", ContentType.HENTAI)
internal class ManhwaHentai(context: MangaLoaderContext) : internal class ManhwaHentai(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.MANHWAHENTAI, "manhwahentai.me", 20) { MadaraParser(context, MangaParserSource.MANHWAHENTAI, "manhwahentai.me", 20) {
override val tagPrefix = "webtoon-genre/" override val tagPrefix = "webtoon-genre/"
override val listUrl = "webtoon/" override val listUrl = "webtoon/"
override val withoutAjax = true
override val postReq = true
override suspend fun getDetails(manga: Manga): Manga = coroutineScope {
val fullUrl = manga.url.toAbsoluteUrl(domain)
val doc = webClient.httpGet(fullUrl).parseHtml()
val body = doc.body()
val chaptersDeferred = async { loadChapters(manga.url, doc) }
val desc = body.select(selectDesc).html()
val stateDiv = if (selectState.isEmpty()) {
(body.selectFirst("div.post-content_item:contains(Status)")
?: body.selectFirst("div.post-content_item:contains(Statut)")
?: body.selectFirst("div.post-content_item:contains(État)")
?: body.selectFirst("div.post-content_item:contains(حالة العمل)")
?: body.selectFirst("div.post-content_item:contains(Estado)")
?: body.selectFirst("div.post-content_item:contains(สถานะ)")
?: body.selectFirst("div.post-content_item:contains(Stato)")
?: body.selectFirst("div.post-content_item:contains(Durum)")
?: body.selectFirst("div.post-content_item:contains(Statüsü)")
?: body.selectFirst("div.post-content_item:contains(Статус)")
?: body.selectFirst("div.post-content_item:contains(状态)")
?: body.selectFirst("div.post-content_item:contains(الحالة)"))?.selectLast("div.summary-content")
} else {
body.selectFirst(selectState)
}
val state = stateDiv?.let {
when (it.text()) {
in ongoing -> MangaState.ONGOING
in finished -> MangaState.FINISHED
in abandoned -> MangaState.ABANDONED
in paused -> MangaState.PAUSED
else -> null
}
}
val alt =
doc.body().select(".post-content_item:contains(Alt) .summary-content").firstOrNull()?.tableValue()?.text()
?.trim() ?: doc.body().select(".post-content_item:contains(Nomes alternativos: ) .summary-content")
.firstOrNull()?.tableValue()?.text()?.trim()
manga.copy(
tags = doc.body().select(selectGenre).mapNotNullToSet { a ->
MangaTag(
key = a.attr("href").removeSuffix("/").substringAfterLast('/'),
title = a.text().toTitleCase(),
source = source,
)
},
description = desc,
altTitle = alt,
state = state,
chapters = chaptersDeferred.await(),
)
}
override suspend fun loadChapters(mangaUrl: String, document: Document): List<MangaChapter> {
val doc = if (postReq) {
val mangaId = document.select("div#manga-chapters-holder").attr("data-id")
val url = "https://$domain/wp-admin/admin-ajax.php"
val postData = "action=ajax_chap&post_id=$mangaId"
webClient.httpPost(url, postData).parseHtml()
} else {
val url = mangaUrl.toAbsoluteUrl(domain).removeSuffix('/') + "/ajax/chapters/"
webClient.httpPost(url, emptyMap()).parseHtml()
}
val dateFormat = SimpleDateFormat(datePattern, sourceLocale)
return doc.select(selectChapter).mapChapters(reversed = true) { i, li ->
val a = li.selectFirst("a")
val href = a?.attrAsRelativeUrlOrNull("href") ?: li.parseFailed("Link is missing")
val link = href + stylePage
val dateText = li.selectFirst("a.c-new-tag")?.attr("title") ?: li.selectFirst(selectDate)?.text()
val name = a.selectFirst("p")?.text() ?: a.ownText()
MangaChapter(
id = generateUid(href),
url = link,
name = name,
number = i + 1f,
volume = 0,
branch = null,
uploadDate = parseChapterDate(
dateFormat,
dateText,
),
scanlator = null,
source = source,
)
}
}
} }

@ -7,4 +7,4 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("NITROMANGA", "NitroManga", "en") @MangaSourceParser("NITROMANGA", "NitroManga", "en")
internal class NitroManga(context: MangaLoaderContext) : internal class NitroManga(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.NITROMANGA, "nitromanga.com", pageSize = 18) MadaraParser(context, MangaParserSource.NITROMANGA, "nitroscans.net", pageSize = 18)

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("NVMANGA", "NvManga", "en") @MangaSourceParser("NVMANGA", "NvManga", "en")
internal class NvManga(context: MangaLoaderContext) : internal class NvManga(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.NVMANGA, "nvmanga.com") { MadaraParser(context, MangaParserSource.NVMANGA, "nvmanga.com") {

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("ONLYMANHWA", "OnlyManhwa", "en") @MangaSourceParser("ONLYMANHWA", "OnlyManhwa", "en")
internal class OnlyManhwa(context: MangaLoaderContext) : internal class OnlyManhwa(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.ONLYMANHWA, "onlymanhwa.org") { MadaraParser(context, MangaParserSource.ONLYMANHWA, "onlymanhwa.org") {

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("PIANMANGA", "PianManga", "en") @MangaSourceParser("PIANMANGA", "PianManga", "en")
internal class PianManga(context: MangaLoaderContext) : internal class PianManga(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.PIANMANGA, "pianmanga.me", pageSize = 10) { MadaraParser(context, MangaParserSource.PIANMANGA, "pianmanga.me", pageSize = 10) {

@ -7,6 +7,6 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("S2MANGA", "S2Manga", "en") @MangaSourceParser("S2MANGA", "S2Manga", "en")
internal class S2Manga(context: MangaLoaderContext) : internal class S2Manga(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.S2MANGA, "www.s2manga.com") { MadaraParser(context, MangaParserSource.S2MANGA, "s2manga.com") {
override val datePattern = "MMMM dd, yyyy" override val datePattern = "MMMM dd, yyyy"
} }

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("THEGUILDSCANS", "TheGuildScans", "en") @MangaSourceParser("THEGUILDSCANS", "TheGuildScans", "en")
internal class Theguildscans(context: MangaLoaderContext) : internal class Theguildscans(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.THEGUILDSCANS, "theguildscans.com") { MadaraParser(context, MangaParserSource.THEGUILDSCANS, "theguildscans.com") {

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("WEBTOON", "Webtoon.uk", "en") @MangaSourceParser("WEBTOON", "Webtoon.uk", "en")
internal class Webtoon(context: MangaLoaderContext) : internal class Webtoon(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.WEBTOON, "webtoon.uk", 20) { MadaraParser(context, MangaParserSource.WEBTOON, "webtoon.uk", 20) {

@ -1,11 +1,13 @@
package org.koitharu.kotatsu.parsers.site.madara.en package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.ContentType import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("YAOIMOBI", "Yaoi.Mobi", "en", ContentType.HENTAI) @MangaSourceParser("YAOIMOBI", "Yaoi.Mobi", "en", ContentType.HENTAI)
internal class YaoiMobi(context: MangaLoaderContext) : internal class YaoiMobi(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.YAOIMOBI, "yaoi.mobi") { MadaraParser(context, MangaParserSource.YAOIMOBI, "yaoi.mobi") {

@ -7,4 +7,4 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("APOLL_COMICS", "ApollComics", "es") @MangaSourceParser("APOLL_COMICS", "ApollComics", "es")
internal class ApollComics(context: MangaLoaderContext) : internal class ApollComics(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.APOLL_COMICS, "apollcomics.com", 10) MadaraParser(context, MangaParserSource.APOLL_COMICS, "apollcomics.es", 10)

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.es package org.koitharu.kotatsu.parsers.site.madara.es
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("ATLANTISSCAN", "AtlantisScan", "es") @MangaSourceParser("ATLANTISSCAN", "AtlantisScan", "es")
internal class AtlantisScan(context: MangaLoaderContext) : internal class AtlantisScan(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.ATLANTISSCAN, "scansatlanticos.com", pageSize = 50) { MadaraParser(context, MangaParserSource.ATLANTISSCAN, "scansatlanticos.com", pageSize = 50) {

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.es package org.koitharu.kotatsu.parsers.site.madara.es
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("COPYPASTESCAN", "CopyPasteScan", "es") @MangaSourceParser("COPYPASTESCAN", "CopyPasteScan", "es")
internal class Copypastescan(context: MangaLoaderContext) : internal class Copypastescan(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.COPYPASTESCAN, "copypastescan.xyz", 10) { MadaraParser(context, MangaParserSource.COPYPASTESCAN, "copypastescan.xyz", 10) {

@ -7,4 +7,4 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("EMPERORSCAN", "EmperorScan", "es") @MangaSourceParser("EMPERORSCAN", "EmperorScan", "es")
internal class EmperorScan(context: MangaLoaderContext) : internal class EmperorScan(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.EMPERORSCAN, "emperorscan.com") MadaraParser(context, MangaParserSource.EMPERORSCAN, "emperor-scan.com")

@ -5,9 +5,9 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("KNIGHTNOSCANLATION", "Knightno Scanlation", "es") @MangaSourceParser("KNIGHTNOSCANLATION", "TwoBlueScans", "es")
internal class KnightnoScanlation(context: MangaLoaderContext) : internal class KnightnoScanlation(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.KNIGHTNOSCANLATION, "knightnoscanlation.com") { MadaraParser(context, MangaParserSource.KNIGHTNOSCANLATION, "kns.twobluescans.com") {
override val listUrl = "sr/" override val listUrl = "sr/"
override val tagPrefix = "generos/" override val tagPrefix = "generos/"
} }

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.es package org.koitharu.kotatsu.parsers.site.madara.es
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("LECTORUNITOON", "LectoruniToon", "es") @MangaSourceParser("LECTORUNITOON", "LectoruniToon", "es")
internal class Lectorunitoon(context: MangaLoaderContext) : internal class Lectorunitoon(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.LECTORUNITOON, "lectorunitoon.com", 10) { MadaraParser(context, MangaParserSource.LECTORUNITOON, "lectorunitoon.com", 10) {

@ -7,7 +7,7 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANGA_CRAB", "MangaCrab", "es") @MangaSourceParser("MANGA_CRAB", "MangaCrab", "es")
internal class MangaCrab(context: MangaLoaderContext) : internal class MangaCrab(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.MANGA_CRAB, "httpmangacrab2.com") { MadaraParser(context, MangaParserSource.MANGA_CRAB, "wikicrab.xyz") {
override val datePattern = "dd/MM/yyyy" override val datePattern = "dd/MM/yyyy"
override val tagPrefix = "manga-genero/" override val tagPrefix = "manga-genero/"
override val listUrl = "series/" override val listUrl = "series/"

@ -7,6 +7,7 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MHSCANS", "MhScans", "es") @MangaSourceParser("MHSCANS", "MhScans", "es")
internal class MhScans(context: MangaLoaderContext) : internal class MhScans(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.MHSCANS, "mhscans.com") { MadaraParser(context, MangaParserSource.MHSCANS, "mh.twobluescans.com") {
override val datePattern = "d 'de' MMMMM 'de' yyyy" override val datePattern = "d 'de' MMMMM 'de' yyyy"
override val listUrl = "series/"
} }

@ -7,6 +7,6 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MONARCAMANGA", "MonarcaManga", "es") @MangaSourceParser("MONARCAMANGA", "MonarcaManga", "es")
internal class MonarcaManga(context: MangaLoaderContext) : internal class MonarcaManga(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.MONARCAMANGA, "monarcamanga.com") { MadaraParser(context, MangaParserSource.MONARCAMANGA, "visormonarca.com") {
override val tagPrefix = "manga-generos/" override val tagPrefix = "manga-generos/"
} }

@ -7,6 +7,6 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("SAMURAISCAN", "SamuraiScan", "es") @MangaSourceParser("SAMURAISCAN", "SamuraiScan", "es")
internal class SamuraiScan(context: MangaLoaderContext) : internal class SamuraiScan(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.SAMURAISCAN, "samuraiscan.com", 10) { MadaraParser(context, MangaParserSource.SAMURAISCAN, "samurai.ragnarokscanlation.org", 10) {
override val listUrl = "leer/" override val listUrl = "leer/"
} }

@ -1,11 +1,13 @@
package org.koitharu.kotatsu.parsers.site.madara.id package org.koitharu.kotatsu.parsers.site.madara.id
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.ContentType import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("INDO18H", "Indo18h", "id", ContentType.HENTAI) @MangaSourceParser("INDO18H", "Indo18h", "id", ContentType.HENTAI)
internal class Indo18h(context: MangaLoaderContext) : internal class Indo18h(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.INDO18H, "indo18h.com", 24) { MadaraParser(context, MangaParserSource.INDO18H, "indo18h.com", 24) {

@ -8,7 +8,7 @@ import java.util.*
@MangaSourceParser("POJOKMANGA", "PojokManga", "id") @MangaSourceParser("POJOKMANGA", "PojokManga", "id")
internal class PojokManga(context: MangaLoaderContext) : internal class PojokManga(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.POJOKMANGA, "pojokmanga.id") { MadaraParser(context, MangaParserSource.POJOKMANGA, "pojokmanga.org") {
override val tagPrefix = "komik-genre/" override val tagPrefix = "komik-genre/"
override val listUrl = "komik/" override val listUrl = "komik/"
override val datePattern = "MMM d, yyyy" override val datePattern = "MMM d, yyyy"

@ -8,7 +8,7 @@ import java.util.*
@MangaSourceParser("SHINIGAMI", "Shinigami", "id") @MangaSourceParser("SHINIGAMI", "Shinigami", "id")
internal class Shinigami(context: MangaLoaderContext) : internal class Shinigami(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.SHINIGAMI, "shinigami02.com", 10) { MadaraParser(context, MangaParserSource.SHINIGAMI, "shinigami03.com", 10) {
override val tagPrefix = "genre/" override val tagPrefix = "genre/"
override val listUrl = "series/" override val listUrl = "series/"
override val sourceLocale: Locale = Locale.ENGLISH override val sourceLocale: Locale = Locale.ENGLISH

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.pt package org.koitharu.kotatsu.parsers.site.madara.pt
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("CABAREDOWATAME", "DessertScan", "pt") @MangaSourceParser("CABAREDOWATAME", "DessertScan", "pt")
internal class Cabaredowatame(context: MangaLoaderContext) : internal class Cabaredowatame(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.CABAREDOWATAME, "cabaredowatame.site", 10) { MadaraParser(context, MangaParserSource.CABAREDOWATAME, "cabaredowatame.site", 10) {

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.pt package org.koitharu.kotatsu.parsers.site.madara.pt
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("FOXWHITE", "FoxWhite", "pt") @MangaSourceParser("FOXWHITE", "FoxWhite", "pt")
internal class FoxWhite(context: MangaLoaderContext) : internal class FoxWhite(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.FOXWHITE, "foxwhite.com.br") MadaraParser(context, MangaParserSource.FOXWHITE, "foxwhite.com.br")

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.pt package org.koitharu.kotatsu.parsers.site.madara.pt
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("MOONWITCHINLOVESCAN", "MoonWitchinLoveScan", "pt") @MangaSourceParser("MOONWITCHINLOVESCAN", "MoonWitchinLoveScan", "pt")
internal class Moonwitchinlovescan(context: MangaLoaderContext) : internal class Moonwitchinlovescan(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.MOONWITCHINLOVESCAN, "moonwitchinlovescan.com", 10) { MadaraParser(context, MangaParserSource.MOONWITCHINLOVESCAN, "moonwitchinlovescan.com", 10) {

@ -11,7 +11,7 @@ import java.text.SimpleDateFormat
@MangaSourceParser("NEOX_SCANS", "NeoxScans", "pt") @MangaSourceParser("NEOX_SCANS", "NeoxScans", "pt")
internal class Neoxscans(context: MangaLoaderContext) : internal class Neoxscans(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.NEOX_SCANS, "nexoscans.net", 18) { MadaraParser(context, MangaParserSource.NEOX_SCANS, "mangalivre.net", 18) {
override val datePattern = "dd/MM/yyyy" override val datePattern = "dd/MM/yyyy"
override suspend fun loadChapters(mangaUrl: String, document: Document): List<MangaChapter> { override suspend fun loadChapters(mangaUrl: String, document: Document): List<MangaChapter> {

@ -1,11 +1,13 @@
package org.koitharu.kotatsu.parsers.site.madara.pt package org.koitharu.kotatsu.parsers.site.madara.pt
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.ContentType import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("PSUNICORN", "PsUnicorn", "pt", ContentType.HENTAI) @MangaSourceParser("PSUNICORN", "PsUnicorn", "pt", ContentType.HENTAI)
internal class Psunicorn(context: MangaLoaderContext) : internal class Psunicorn(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.PSUNICORN, "psunicorn.com") MadaraParser(context, MangaParserSource.PSUNICORN, "psunicorn.com")

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.pt package org.koitharu.kotatsu.parsers.site.madara.pt
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("ROGMANGAS", "RogMangas", "pt") @MangaSourceParser("ROGMANGAS", "RogMangas", "pt")
internal class RogMangas(context: MangaLoaderContext) : internal class RogMangas(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.ROGMANGAS, "rogmangas.com", 51) { MadaraParser(context, MangaParserSource.ROGMANGAS, "rogmangas.com", 51) {

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.th package org.koitharu.kotatsu.parsers.site.madara.th
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("BAKAMAN", "BakaMan", "th") @MangaSourceParser("BAKAMAN", "BakaMan", "th")
internal class BakaMan(context: MangaLoaderContext) : internal class BakaMan(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.BAKAMAN, "bakaman.net", pageSize = 18) { MadaraParser(context, MangaParserSource.BAKAMAN, "bakaman.net", pageSize = 18) {

@ -7,7 +7,7 @@ import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("CAT_300", "Cat300", "th", ContentType.HENTAI) @MangaSourceParser("CAT_300", "Cat300", "th", ContentType.HENTAI)
internal class Cat300(context: MangaLoaderContext) : MadaraParser(context, MangaParserSource.CAT_300, "cat300.com") { internal class Cat300(context: MangaLoaderContext) : MadaraParser(context, MangaParserSource.CAT_300, "cat300.net") {
override val datePattern = "MMMM dd, yyyy" override val datePattern = "MMMM dd, yyyy"
override val withoutAjax = true override val withoutAjax = true
} }

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.tr package org.koitharu.kotatsu.parsers.site.madara.tr
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("GHOSTFANSUB", "GhostFansub", "tr") @MangaSourceParser("GHOSTFANSUB", "GhostFansub", "tr")
internal class GhostFansub(context: MangaLoaderContext) : internal class GhostFansub(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.GHOSTFANSUB, "ghostfansub.co", 18) MadaraParser(context, MangaParserSource.GHOSTFANSUB, "ghostfansub.co", 18)

@ -8,6 +8,6 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("TONIZUTOON", "ToniZu.com", "tr", ContentType.HENTAI) @MangaSourceParser("TONIZUTOON", "ToniZu.com", "tr", ContentType.HENTAI)
internal class Tonizutoon(context: MangaLoaderContext) : internal class Tonizutoon(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.TONIZUTOON, "tonizu.com") { MadaraParser(context, MangaParserSource.TONIZUTOON, "tonizu.xyz") {
override val datePattern = "dd/mm/yyyy" override val datePattern = "dd/mm/yyyy"
} }

@ -1,5 +1,6 @@
package org.koitharu.kotatsu.parsers.site.madara.tr package org.koitharu.kotatsu.parsers.site.madara.tr
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.ContentType import org.koitharu.kotatsu.parsers.model.ContentType
@ -7,6 +8,7 @@ import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
//Manga +18 require login. //Manga +18 require login.
@Broken
@MangaSourceParser("VIYAFANSUB", "ViyaFansub", "tr", ContentType.HENTAI) @MangaSourceParser("VIYAFANSUB", "ViyaFansub", "tr", ContentType.HENTAI)
internal class ViyaFansub(context: MangaLoaderContext) : internal class ViyaFansub(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.VIYAFANSUB, "viyafansub.com") MadaraParser(context, MangaParserSource.VIYAFANSUB, "viyafansub.com")

@ -12,7 +12,7 @@ import org.koitharu.kotatsu.parsers.util.*
@MangaSourceParser("HENTAICUBE", "HentaiCube", "vi", ContentType.HENTAI) @MangaSourceParser("HENTAICUBE", "HentaiCube", "vi", ContentType.HENTAI)
internal class HentaiCube(context: MangaLoaderContext) : internal class HentaiCube(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.HENTAICUBE, "cbhentai.net") { MadaraParser(context, MangaParserSource.HENTAICUBE, "hentaicb.mom") {
override val datePattern = "dd/MM/yyyy" override val datePattern = "dd/MM/yyyy"
override val tagPrefix = "the-loai/" override val tagPrefix = "the-loai/"

@ -1,6 +1,7 @@
package org.koitharu.kotatsu.parsers.site.madara.vi package org.koitharu.kotatsu.parsers.site.madara.vi
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaChapter import org.koitharu.kotatsu.parsers.model.MangaChapter
@ -8,6 +9,7 @@ import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
import org.koitharu.kotatsu.parsers.util.* import org.koitharu.kotatsu.parsers.util.*
@Broken
@MangaSourceParser("TRUYENTRANHDAMMYY", "TruyenTranhDamMyy", "vi") @MangaSourceParser("TRUYENTRANHDAMMYY", "TruyenTranhDamMyy", "vi")
internal class TruyenTranhDamMyy(context: MangaLoaderContext) : internal class TruyenTranhDamMyy(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.TRUYENTRANHDAMMYY, "truyentranhdammyy.net") { MadaraParser(context, MangaParserSource.TRUYENTRANHDAMMYY, "truyentranhdammyy.net") {

@ -11,7 +11,7 @@ import java.text.SimpleDateFormat
@MangaSourceParser("MANGAJINX", "MangaJinx", "en") @MangaSourceParser("MANGAJINX", "MangaJinx", "en")
internal class MangaJinx(context: MangaLoaderContext) : internal class MangaJinx(context: MangaLoaderContext) :
MadthemeParser(context, MangaParserSource.MANGAJINX, "mangajinx.com") { MadthemeParser(context, MangaParserSource.MANGAJINX, "mgjinx.com") {
override val listUrl = "search" override val listUrl = "search"
override suspend fun getChapters(doc: Document): List<MangaChapter> { override suspend fun getChapters(doc: Document): List<MangaChapter> {

@ -1,6 +1,7 @@
package org.koitharu.kotatsu.parsers.site.madtheme.en package org.koitharu.kotatsu.parsers.site.madtheme.en
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.* import org.koitharu.kotatsu.parsers.model.*
@ -9,6 +10,7 @@ import org.koitharu.kotatsu.parsers.util.*
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
@Broken
@MangaSourceParser("MANHUASCAN", "kaliscan.io", "en") @MangaSourceParser("MANHUASCAN", "kaliscan.io", "en")
internal class ManhuaScan(context: MangaLoaderContext) : internal class ManhuaScan(context: MangaLoaderContext) :
MadthemeParser(context, MangaParserSource.MANHUASCAN, "manhuascan.io") { MadthemeParser(context, MangaParserSource.MANHUASCAN, "manhuascan.io") {

@ -14,7 +14,7 @@ import java.util.*
internal class MangakakalotTv(context: MangaLoaderContext) : internal class MangakakalotTv(context: MangaLoaderContext) :
MangaboxParser(context, MangaParserSource.MANGAKAKALOTTV) { MangaboxParser(context, MangaParserSource.MANGAKAKALOTTV) {
override val configKeyDomain = ConfigKey.Domain("ww7.mangakakalot.tv") override val configKeyDomain = ConfigKey.Domain("ww8.mangakakalot.tv")
override val searchUrl = "/search/" override val searchUrl = "/search/"
override val listUrl = "/manga_list" override val listUrl = "/manga_list"
override val availableSortOrders: Set<SortOrder> = EnumSet.of( override val availableSortOrders: Set<SortOrder> = EnumSet.of(

@ -1,10 +0,0 @@
package org.koitharu.kotatsu.parsers.site.mangareader.ar
import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@MangaSourceParser("CROWSCANS", "CrowScans", "ar")
internal class CrowScans(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.CROWSCANS, "crowscans.com", pageSize = 30, searchPageSize = 10)

@ -10,7 +10,7 @@ import org.koitharu.kotatsu.parsers.util.*
@MangaSourceParser("MANJANOON", "Manjanoon.org", "ar") @MangaSourceParser("MANJANOON", "Manjanoon.org", "ar")
internal class Manjanoon(context: MangaLoaderContext) : internal class Manjanoon(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.MANJANOON, "manjanoon.org", pageSize = 21, searchPageSize = 10) { MangaReaderParser(context, MangaParserSource.MANJANOON, "manjanoon.co", pageSize = 21, searchPageSize = 10) {
override suspend fun getDetails(manga: Manga): Manga { override suspend fun getDetails(manga: Manga): Manga {
val docs = webClient.httpGet(manga.url.toAbsoluteUrl(domain)).parseHtml() val docs = webClient.httpGet(manga.url.toAbsoluteUrl(domain)).parseHtml()

@ -7,6 +7,7 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@MangaSourceParser("ASTRASCANS", "AstraScans", "en") @MangaSourceParser("ASTRASCANS", "AstraScans", "en")
internal class AstraScans(context: MangaLoaderContext) : internal class AstraScans(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.ASTRASCANS, "astrascans.com", pageSize = 30, searchPageSize = 10) { MangaReaderParser(context, MangaParserSource.ASTRASCANS, "astrascans.org", pageSize = 20, searchPageSize = 10) {
override val isTagsExclusionSupported = false override val isTagsExclusionSupported = false
override val listUrl = "/series"
} }

@ -6,6 +6,6 @@ import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@MangaSourceParser("EDOUJIN", "EDoujin", "en", ContentType.HENTAI) @MangaSourceParser("EDOUJIN", "EHentaiManga", "en", ContentType.HENTAI)
internal class EDoujin(context: MangaLoaderContext) : internal class EDoujin(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.EDOUJIN, "edoujin.net", pageSize = 25, searchPageSize = 10) MangaReaderParser(context, MangaParserSource.EDOUJIN, "ehentaimanga.com", pageSize = 25, searchPageSize = 10)

@ -3,6 +3,7 @@ package org.koitharu.kotatsu.parsers.site.mangareader.en
import androidx.collection.ArrayMap import androidx.collection.ArrayMap
import kotlinx.coroutines.sync.withLock import kotlinx.coroutines.sync.withLock
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
@ -13,6 +14,7 @@ import org.koitharu.kotatsu.parsers.util.domain
import org.koitharu.kotatsu.parsers.util.parseHtml import org.koitharu.kotatsu.parsers.util.parseHtml
import org.koitharu.kotatsu.parsers.util.toTitleCase import org.koitharu.kotatsu.parsers.util.toTitleCase
@Broken
@MangaSourceParser("FREAKCOMIC", "FreakComic", "en") @MangaSourceParser("FREAKCOMIC", "FreakComic", "en")
internal class FreakComic(context: MangaLoaderContext) : internal class FreakComic(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.FREAKCOMIC, "freakcomic.com", pageSize = 20, searchPageSize = 10) { MangaReaderParser(context, MangaParserSource.FREAKCOMIC, "freakcomic.com", pageSize = 20, searchPageSize = 10) {

@ -5,8 +5,9 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
// redirect to @KAISCANS
@MangaSourceParser("LUASCANS", "LuaScans", "en") @MangaSourceParser("LUASCANS", "LuaScans", "en")
internal class LuaScans(context: MangaLoaderContext) : internal class LuaScans(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.LUASCANS, "luacomic.com", pageSize = 20, searchPageSize = 10) { MangaReaderParser(context, MangaParserSource.LUASCANS, "kaiscans.org", pageSize = 20, searchPageSize = 10) {
override val isTagsExclusionSupported = false override val isTagsExclusionSupported = false
} }

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.mangareader.en package org.koitharu.kotatsu.parsers.site.mangareader.en
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@Broken
@MangaSourceParser("MANHWA_FREAK", "ManhwaFreak", "en") @MangaSourceParser("MANHWA_FREAK", "ManhwaFreak", "en")
internal class ManhwaFreak(context: MangaLoaderContext) : internal class ManhwaFreak(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.MANHWA_FREAK, "manhwafreak.site", pageSize = 20, searchPageSize = 10) MangaReaderParser(context, MangaParserSource.MANHWA_FREAK, "manhwafreak.site", pageSize = 20, searchPageSize = 10)

@ -7,7 +7,7 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@MangaSourceParser("NEROSCANS", "NeroScans", "en") @MangaSourceParser("NEROSCANS", "NeroScans", "en")
internal class NeroScans(context: MangaLoaderContext) : internal class NeroScans(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.NEROSCANS, "neroscans.com", pageSize = 20, searchPageSize = 10) { MangaReaderParser(context, MangaParserSource.NEROSCANS, "vofeg.com", pageSize = 20, searchPageSize = 10) {
override val listUrl = "/series" override val listUrl = "/series"
override val isTagsExclusionSupported = false override val isTagsExclusionSupported = false
} }

@ -7,7 +7,7 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@MangaSourceParser("READKOMIK", "ReadKomik", "en") @MangaSourceParser("READKOMIK", "ReadKomik", "en")
internal class Readkomik(context: MangaLoaderContext) : internal class Readkomik(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.READKOMIK, "readkomik.com", pageSize = 20, searchPageSize = 20) { MangaReaderParser(context, MangaParserSource.READKOMIK, "novelstreams.com", pageSize = 20, searchPageSize = 20) {
override val datePattern = "MMM d, yyyy" override val datePattern = "MMM d, yyyy"
override val isTagsExclusionSupported = false override val isTagsExclusionSupported = false
} }

@ -7,7 +7,7 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@MangaSourceParser("VOIDSCANS", "VoidScans", "en") @MangaSourceParser("VOIDSCANS", "VoidScans", "en")
internal class VoidScans(context: MangaLoaderContext) : internal class VoidScans(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.VOIDSCANS, "void-scans.com", pageSize = 150, searchPageSize = 150) { MangaReaderParser(context, MangaParserSource.VOIDSCANS, "hivetoon.com", pageSize = 150, searchPageSize = 150) {
override val datePattern = "MMM d, yyyy" override val datePattern = "MMM d, yyyy"
override val isTagsExclusionSupported = false override val isTagsExclusionSupported = false
} }

@ -7,6 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@MangaSourceParser("INARIMANGA", "InariManga", "es") @MangaSourceParser("INARIMANGA", "InariManga", "es")
internal class InariManga(context: MangaLoaderContext) : internal class InariManga(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.INARIMANGA, "inarimanga.net", pageSize = 20, searchPageSize = 10) { MangaReaderParser(context, MangaParserSource.INARIMANGA, "nakamatoon.com", pageSize = 20, searchPageSize = 10) {
override val isTagsExclusionSupported = false override val isTagsExclusionSupported = false
} }

@ -5,6 +5,6 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@MangaSourceParser("MIAUSCAN", "MiauScan", "es") @MangaSourceParser("MIAUSCAN", "LectorMiau", "es")
internal class MiauScan(context: MangaLoaderContext) : internal class MiauScan(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.MIAUSCAN, "miaucomics.org", pageSize = 20, searchPageSize = 10) MangaReaderParser(context, MangaParserSource.MIAUSCAN, "lectormiau.com", pageSize = 20, searchPageSize = 10)

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.mangareader.es package org.koitharu.kotatsu.parsers.site.mangareader.es
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@Broken
@MangaSourceParser("TECNOSCANN", "TecnoScann", "es") @MangaSourceParser("TECNOSCANN", "TecnoScann", "es")
internal class TecnoScann(context: MangaLoaderContext) : internal class TecnoScann(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.TECNOSCANN, "tecnoscann.com", 20, 10) { MangaReaderParser(context, MangaParserSource.TECNOSCANN, "tecnoscann.com", 20, 10) {

@ -1,11 +1,13 @@
package org.koitharu.kotatsu.parsers.site.mangareader.id package org.koitharu.kotatsu.parsers.site.mangareader.id
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
import java.util.* import java.util.*
@Broken
@MangaSourceParser("ALCEASCAN", "AlceaScan", "id") @MangaSourceParser("ALCEASCAN", "AlceaScan", "id")
internal class AlceaScan(context: MangaLoaderContext) : internal class AlceaScan(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.ALCEASCAN, "alceascan.my.id", pageSize = 20, searchPageSize = 10) { MangaReaderParser(context, MangaParserSource.ALCEASCAN, "alceascan.my.id", pageSize = 20, searchPageSize = 10) {

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.mangareader.id package org.koitharu.kotatsu.parsers.site.mangareader.id
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@Broken
@MangaSourceParser("COMICASO", "Comicaso", "id") @MangaSourceParser("COMICASO", "Comicaso", "id")
internal class Comicaso(context: MangaLoaderContext) : internal class Comicaso(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.COMICASO, "comicaso.com", pageSize = 20, searchPageSize = 10) { MangaReaderParser(context, MangaParserSource.COMICASO, "comicaso.com", pageSize = 20, searchPageSize = 10) {

@ -6,8 +6,8 @@ import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@MangaSourceParser("DOUJINDESURIP", "DoujinDesu.cfd", "id", ContentType.HENTAI) @MangaSourceParser("DOUJINDESURIP", "DoujinDesu.mobi", "id", ContentType.HENTAI)
internal class DoujinDesuRip(context: MangaLoaderContext) : internal class DoujinDesuRip(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.DOUJINDESURIP, "doujindesu.cfd", pageSize = 20, searchPageSize = 10) { MangaReaderParser(context, MangaParserSource.DOUJINDESURIP, "doujindesu.mobi", pageSize = 20, searchPageSize = 10) {
override val isTagsExclusionSupported = false override val isTagsExclusionSupported = false
} }

@ -9,7 +9,7 @@ import java.util.*
@MangaSourceParser("DOUJINKU", "DoujinKu", "id", ContentType.HENTAI) @MangaSourceParser("DOUJINKU", "DoujinKu", "id", ContentType.HENTAI)
internal class DoujinKu(context: MangaLoaderContext) : internal class DoujinKu(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.DOUJINKU, "doujinku.xyz", pageSize = 20, searchPageSize = 10) { MangaReaderParser(context, MangaParserSource.DOUJINKU, "doujinku.org", pageSize = 20, searchPageSize = 10) {
override val sourceLocale: Locale = Locale.ENGLISH override val sourceLocale: Locale = Locale.ENGLISH
override val isTagsExclusionSupported = false override val isTagsExclusionSupported = false
} }

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.mangareader.id package org.koitharu.kotatsu.parsers.site.mangareader.id
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@Broken
@MangaSourceParser("KOMIKAV", "KomikAv", "id") @MangaSourceParser("KOMIKAV", "KomikAv", "id")
internal class KomikAvParser(context: MangaLoaderContext) : internal class KomikAvParser(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.KOMIKAV, "komikav.com", pageSize = 20, searchPageSize = 10) { MangaReaderParser(context, MangaParserSource.KOMIKAV, "komikav.com", pageSize = 20, searchPageSize = 10) {

@ -7,9 +7,9 @@ import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
import java.util.* import java.util.*
@MangaSourceParser("KOMIKDEWASA", "komikRemaja.cfd", "id", ContentType.HENTAI) @MangaSourceParser("KOMIKDEWASA", "komikRemaja.icu", "id", ContentType.HENTAI)
internal class KomikDewasaParser(context: MangaLoaderContext) : internal class KomikDewasaParser(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.KOMIKDEWASA, "komikremaja.cfd", pageSize = 20, searchPageSize = 10) { MangaReaderParser(context, MangaParserSource.KOMIKDEWASA, "komikremaja.icu", pageSize = 20, searchPageSize = 10) {
override val listUrl: String = "/komik" override val listUrl: String = "/komik"
override val sourceLocale: Locale = Locale.ENGLISH override val sourceLocale: Locale = Locale.ENGLISH
override val isTagsExclusionSupported = false override val isTagsExclusionSupported = false

@ -8,7 +8,7 @@ import java.util.*
@MangaSourceParser("KOMIKLOKAL", "KomikMirror", "id") @MangaSourceParser("KOMIKLOKAL", "KomikMirror", "id")
internal class KomikLokalParser(context: MangaLoaderContext) : internal class KomikLokalParser(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.KOMIKLOKAL, "komikmirror.lol", pageSize = 20, searchPageSize = 10) { MangaReaderParser(context, MangaParserSource.KOMIKLOKAL, "komikmu.fun", pageSize = 20, searchPageSize = 10) {
override val datePattern = "MMM d, yyyy" override val datePattern = "MMM d, yyyy"
override val sourceLocale: Locale = Locale.ENGLISH override val sourceLocale: Locale = Locale.ENGLISH
} }

@ -1,5 +1,6 @@
package org.koitharu.kotatsu.parsers.site.mangareader.id package org.koitharu.kotatsu.parsers.site.mangareader.id
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.* import org.koitharu.kotatsu.parsers.model.*
@ -9,6 +10,7 @@ import org.koitharu.kotatsu.parsers.util.oneOrThrowIfMany
import org.koitharu.kotatsu.parsers.util.parseHtml import org.koitharu.kotatsu.parsers.util.parseHtml
import org.koitharu.kotatsu.parsers.util.urlEncoded import org.koitharu.kotatsu.parsers.util.urlEncoded
@Broken
@MangaSourceParser("KOMIKSAN", "KomikSan", "id") @MangaSourceParser("KOMIKSAN", "KomikSan", "id")
internal class KomikSan(context: MangaLoaderContext) : internal class KomikSan(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.KOMIKSAN, "komiksan.link", pageSize = 40, searchPageSize = 10) { MangaReaderParser(context, MangaParserSource.KOMIKSAN, "komiksan.link", pageSize = 40, searchPageSize = 10) {

@ -9,6 +9,6 @@ import java.util.*
@MangaSourceParser("KOMIKLOKALCFD", "KomikLokal.mom", "id", ContentType.HENTAI) @MangaSourceParser("KOMIKLOKALCFD", "KomikLokal.mom", "id", ContentType.HENTAI)
internal class KomiklokalCfd(context: MangaLoaderContext) : internal class KomiklokalCfd(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.KOMIKLOKALCFD, "komiklokal.mom", pageSize = 30, searchPageSize = 10) { MangaReaderParser(context, MangaParserSource.KOMIKLOKALCFD, "komiklokal.shop", pageSize = 30, searchPageSize = 10) {
override val sourceLocale: Locale = Locale.ENGLISH override val sourceLocale: Locale = Locale.ENGLISH
} }

@ -1,11 +1,13 @@
package org.koitharu.kotatsu.parsers.site.mangareader.id package org.koitharu.kotatsu.parsers.site.mangareader.id
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
import java.util.* import java.util.*
@Broken
@MangaSourceParser("MANGASHIRO", "MangaShiro", "id") @MangaSourceParser("MANGASHIRO", "MangaShiro", "id")
internal class MangaShiro(context: MangaLoaderContext) : internal class MangaShiro(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.MANGASHIRO, "mangashiro.me", pageSize = 20, searchPageSize = 10) { MangaReaderParser(context, MangaParserSource.MANGASHIRO, "mangashiro.me", pageSize = 20, searchPageSize = 10) {

@ -8,6 +8,6 @@ import java.util.*
@MangaSourceParser("MANGAYARO", "MangaYaro", "id") @MangaSourceParser("MANGAYARO", "MangaYaro", "id")
internal class Mangayaro(context: MangaLoaderContext) : internal class Mangayaro(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.MANGAYARO, "www.mangayaro.id", pageSize = 20, searchPageSize = 20) { MangaReaderParser(context, MangaParserSource.MANGAYARO, "mangayaro.id", pageSize = 20, searchPageSize = 20) {
override val sourceLocale: Locale = Locale.ENGLISH override val sourceLocale: Locale = Locale.ENGLISH
} }

@ -1,11 +1,13 @@
package org.koitharu.kotatsu.parsers.site.mangareader.id package org.koitharu.kotatsu.parsers.site.mangareader.id
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
import java.util.* import java.util.*
@Broken
@MangaSourceParser("OTSUGAMI", "Otsugami", "id") @MangaSourceParser("OTSUGAMI", "Otsugami", "id")
internal class Otsugami(context: MangaLoaderContext) : internal class Otsugami(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.OTSUGAMI, "otsugami.id", pageSize = 40, searchPageSize = 10) { MangaReaderParser(context, MangaParserSource.OTSUGAMI, "otsugami.id", pageSize = 40, searchPageSize = 10) {

@ -1,10 +1,12 @@
package org.koitharu.kotatsu.parsers.site.mangareader.id package org.koitharu.kotatsu.parsers.site.mangareader.id
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@Broken
@MangaSourceParser("SHEAKOMIK", "SheaKomik", "id") @MangaSourceParser("SHEAKOMIK", "SheaKomik", "id")
internal class Sheakomik(context: MangaLoaderContext) : internal class Sheakomik(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.SHEAKOMIK, "sheakomik.com", pageSize = 40, searchPageSize = 40) { MangaReaderParser(context, MangaParserSource.SHEAKOMIK, "sheakomik.com", pageSize = 40, searchPageSize = 40) {

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save