Fix sources titles

Koitharu 3 years ago
parent e2e027df81
commit 0054d06e6e
Signed by: Koitharu
GPG Key ID: 676DEE768C17A9D7

@ -121,6 +121,8 @@ class ParserProcessor(
private val factoryWriter: Writer?, private val factoryWriter: Writer?,
) : KSVisitorVoid() { ) : KSVisitorVoid() {
private val titles = HashMap<String, String>()
override fun visitClassDeclaration(classDeclaration: KSClassDeclaration, data: Unit) { override fun visitClassDeclaration(classDeclaration: KSClassDeclaration, data: Unit) {
if (classDeclaration.classKind != ClassKind.CLASS || classDeclaration.isAbstract()) { if (classDeclaration.classKind != ClassKind.CLASS || classDeclaration.isAbstract()) {
logger.error("Only non-abstract can be annotated with @MangaSourceParser", classDeclaration) logger.error("Only non-abstract can be annotated with @MangaSourceParser", classDeclaration)
@ -149,7 +151,13 @@ class ParserProcessor(
classDeclaration, classDeclaration,
) )
} }
val className = classDeclaration.qualifiedName?.asString() val className = checkNotNull(classDeclaration.qualifiedName?.asString()) { "Class name is null" }
val prevTitleClass = titles.put(title, className)
if (prevTitleClass != null) {
logger.warn("Source title duplication: \"$title\" is assigned to both $prevTitleClass and $className")
}
factoryWriter?.write("\tMangaSource.$name -> $className(context)\n") factoryWriter?.write("\tMangaSource.$name -> $className(context)\n")
val deprecationString = if (deprecation != null) { val deprecationString = if (deprecation != null) {
val reason = deprecation.arguments val reason = deprecation.arguments

@ -13,6 +13,7 @@ annotation class MangaSourceParser(
val name: String, val name: String,
/** /**
* User-friendly title of manga source. In most case equals the website name. * User-friendly title of manga source. In most case equals the website name.
* Avoid extra whitespaces between the words if it is not required.
*/ */
val title: String, val title: String,
/** /**

@ -17,7 +17,7 @@ import org.koitharu.kotatsu.parsers.util.json.mapJSON
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
@MangaSourceParser("KSKMOE", "Ksk .Moe", "en", ContentType.HENTAI) @MangaSourceParser("KSKMOE", "Ksk.moe", "en", ContentType.HENTAI)
internal class KskMoe(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.KSKMOE, 35) { internal class KskMoe(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.KSKMOE, 35) {
override val sortOrders: Set<SortOrder> = override val sortOrders: Set<SortOrder> =

@ -14,7 +14,7 @@ import org.koitharu.kotatsu.parsers.util.json.mapJSON
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
@MangaSourceParser("MANGAOWL", "Manga Owl .To", "en") @MangaSourceParser("MANGAOWL", "MangaOwl.to", "en")
internal class Mangaowl(context: MangaLoaderContext) : internal class Mangaowl(context: MangaLoaderContext) :
PagedMangaParser(context, MangaSource.MANGAOWL, pageSize = 24) { PagedMangaParser(context, MangaSource.MANGAOWL, pageSize = 24) {

@ -10,7 +10,7 @@ import org.koitharu.kotatsu.parsers.site.fmreader.FmreaderParser
import org.koitharu.kotatsu.parsers.util.* import org.koitharu.kotatsu.parsers.util.*
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
@MangaSourceParser("MANHWA18COM", "Manhwa 18 .Com", "en", ContentType.HENTAI) @MangaSourceParser("MANHWA18COM", "Manhwa18.com", "en", ContentType.HENTAI)
internal class Manhwa18Com(context: MangaLoaderContext) : internal class Manhwa18Com(context: MangaLoaderContext) :
FmreaderParser(context, MangaSource.MANHWA18COM, "manhwa18.com") { FmreaderParser(context, MangaSource.MANHWA18COM, "manhwa18.com") {

@ -13,7 +13,7 @@ import org.koitharu.kotatsu.parsers.network.UserAgents
import org.koitharu.kotatsu.parsers.util.* import org.koitharu.kotatsu.parsers.util.*
import java.util.* import java.util.*
@MangaSourceParser("SCANS_MANGAS_ME", "Scans Mangas .Me", "fr") @MangaSourceParser("SCANS_MANGAS_ME", "ScansMangas.me", "fr")
internal class ScansMangasMe(context: MangaLoaderContext) : internal class ScansMangasMe(context: MangaLoaderContext) :
PagedMangaParser(context, MangaSource.SCANS_MANGAS_ME, 0) { PagedMangaParser(context, MangaSource.SCANS_MANGAS_ME, 0) {

@ -5,7 +5,7 @@ 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.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
import java.util.Locale import java.util.*
@MangaSourceParser("MANGATOP", "MangaTop", "", ContentType.HENTAI) @MangaSourceParser("MANGATOP", "MangaTop", "", ContentType.HENTAI)
internal class MangaTop(context: MangaLoaderContext) : internal class MangaTop(context: MangaLoaderContext) :

@ -8,7 +8,7 @@ import org.koitharu.kotatsu.parsers.util.*
import java.util.HashSet import java.util.HashSet
import java.util.Locale import java.util.Locale
@MangaSourceParser("MANHWA18CC", "Manhwa 18 .Cc", "", ContentType.HENTAI) @MangaSourceParser("MANHWA18CC", "Manhwa18.cc", "", ContentType.HENTAI)
internal class Manhwa18Cc(context: MangaLoaderContext) : internal class Manhwa18Cc(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANHWA18CC, "manhwa18.cc", 24) { MadaraParser(context, MangaSource.MANHWA18CC, "manhwa18.cc", 24) {
override val datePattern = "dd MMM yyyy" override val datePattern = "dd MMM yyyy"

@ -7,7 +7,7 @@ import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
import java.util.Locale import java.util.Locale
@MangaSourceParser("MANYTOON_CLUB", "Many Toon .Club", "", ContentType.HENTAI) @MangaSourceParser("MANYTOON_CLUB", "ManyToon Club", "", ContentType.HENTAI)
internal class ManyToonClub(context: MangaLoaderContext) : internal class ManyToonClub(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANYTOON_CLUB, "manytoon.club") { MadaraParser(context, MangaSource.MANYTOON_CLUB, "manytoon.club") {
override val postReq = true override val postReq = true

@ -5,6 +5,6 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANGALEK", "Manga Lek", "ar") @MangaSourceParser("MANGALEK", "MangaLeku", "ar")
internal class MangaLek(context: MangaLoaderContext) : internal class MangaLek(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGALEK, "mangaleku.com", pageSize = 10) MadaraParser(context, MangaSource.MANGALEK, "mangaleku.com", pageSize = 10)

@ -5,6 +5,6 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANGALEK_NET", "Manga Lek .Net", "ar") @MangaSourceParser("MANGALEK_NET", "MangaLek.net", "ar")
internal class MangaLekNet(context: MangaLoaderContext) : internal class MangaLekNet(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGALEK_NET, "manga-lek.net", pageSize = 10) MadaraParser(context, MangaSource.MANGALEK_NET, "manga-lek.net", pageSize = 10)

@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANGALEK_ORG", "Manga Lek .Org", "ar") @MangaSourceParser("MANGALEK_ORG", "MangaLek.org", "ar")
internal class MangaLekOrg(context: MangaLoaderContext) : internal class MangaLekOrg(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGALEK_ORG, "ww.mangalek.org", pageSize = 10) { MadaraParser(context, MangaSource.MANGALEK_ORG, "ww.mangalek.org", pageSize = 10) {
override val listUrl = "comics/" override val listUrl = "comics/"

@ -5,6 +5,6 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("ASURASCANS_US", "Asura Scans .Us", "en") @MangaSourceParser("ASURASCANS_US", "AsuraScans.us", "en")
internal class AsuraScansUs(context: MangaLoaderContext) : internal class AsuraScansUs(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.ASURASCANS_US, "asurascans.us") MadaraParser(context, MangaSource.ASURASCANS_US, "asurascans.us")

@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("BESTMANHUACOM", "Best Manhua .Com", "en") @MangaSourceParser("BESTMANHUACOM", "BestManhua.com", "en")
internal class BestManhuaCom(context: MangaLoaderContext) : internal class BestManhuaCom(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.BESTMANHUACOM, "bestmanhua.com", 10) { MadaraParser(context, MangaSource.BESTMANHUACOM, "bestmanhua.com", 10) {
override val withoutAjax = true override val withoutAjax = true

@ -7,9 +7,9 @@ import org.koitharu.kotatsu.parsers.model.*
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.*
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.EnumSet import java.util.*
@MangaSourceParser("COFFEE_MANGA_TOP", "Coffee Manga .Top", "en") @MangaSourceParser("COFFEE_MANGA_TOP", "CoffeeManga.top", "en")
internal class CoffeeMangaTop(context: MangaLoaderContext) : internal class CoffeeMangaTop(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.COFFEE_MANGA_TOP, "coffeemanga.top") { MadaraParser(context, MangaSource.COFFEE_MANGA_TOP, "coffeemanga.top") {
override val tagPrefix = "mangas/" override val tagPrefix = "mangas/"

@ -9,7 +9,7 @@ import org.koitharu.kotatsu.parsers.util.*
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
@MangaSourceParser("ISEKAISCAN", "Isekai Scan .Top", "en") @MangaSourceParser("ISEKAISCAN", "IsekaiScan.top", "en")
internal class IsekaiScan(context: MangaLoaderContext) : internal class IsekaiScan(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.ISEKAISCAN, "isekaiscan.top", 16) { MadaraParser(context, MangaSource.ISEKAISCAN, "isekaiscan.top", 16) {

@ -6,7 +6,7 @@ import org.koitharu.kotatsu.parsers.model.*
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.*
@MangaSourceParser("ISEKAISCAN_EU", "Isekai Scan .To", "en") @MangaSourceParser("ISEKAISCAN_EU", "IsekaiScan.to", "en")
internal class IsekaiScanEuParser(context: MangaLoaderContext) : internal class IsekaiScanEuParser(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.ISEKAISCAN_EU, "m.isekaiscan.to") { MadaraParser(context, MangaSource.ISEKAISCAN_EU, "m.isekaiscan.to") {

@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANGACLASH_TV", "Manga Clash .Tv", "en") @MangaSourceParser("MANGACLASH_TV", "MangaClash.tv", "en")
internal class MangaClashTv(context: MangaLoaderContext) : internal class MangaClashTv(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGACLASH_TV, "mangaclash.tv", pageSize = 10) { MadaraParser(context, MangaSource.MANGACLASH_TV, "mangaclash.tv", pageSize = 10) {
override val datePattern = "MM/dd/yyyy" override val datePattern = "MM/dd/yyyy"

@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANGAFASTNET", "Manga Fast .Net", "en") @MangaSourceParser("MANGAFASTNET", "MangaFast.net", "en")
internal class MangaFastNet(context: MangaLoaderContext) : internal class MangaFastNet(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGAFASTNET, "manhuafast.net") { MadaraParser(context, MangaSource.MANGAFASTNET, "manhuafast.net") {
override val withoutAjax = true override val withoutAjax = true

@ -6,7 +6,7 @@ import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANGAOWLBLOG", "Manga Owl .Blog", "en", ContentType.HENTAI) @MangaSourceParser("MANGAOWLBLOG", "MangaOwl.blog", "en", ContentType.HENTAI)
internal class MangaOwlBlog(context: MangaLoaderContext) : internal class MangaOwlBlog(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGAOWLBLOG, "mangaowl.blog", 20) { MadaraParser(context, MangaSource.MANGAOWLBLOG, "mangaowl.blog", 20) {
override val postReq = true override val postReq = true

@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANGAOWL_IO", "Manga Owl .Io", "en") @MangaSourceParser("MANGAOWL_IO", "MangaOwl.io", "en")
internal class MangaOwlIo(context: MangaLoaderContext) : internal class MangaOwlIo(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGAOWL_IO, "mangaowl.io") { MadaraParser(context, MangaSource.MANGAOWL_IO, "mangaowl.io") {
override val listUrl = "mangaowl-all/" override val listUrl = "mangaowl-all/"

@ -6,6 +6,6 @@ import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANGAOWL_US", "Manga owl Yaoi", "en", ContentType.HENTAI) @MangaSourceParser("MANGAOWL_US", "MangaOwlYaoi", "en", ContentType.HENTAI)
internal class MangaOwlUs(context: MangaLoaderContext) : internal class MangaOwlUs(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGAOWL_US, "mangaowlyaoi.com") MadaraParser(context, MangaSource.MANGAOWL_US, "mangaowlyaoi.com")

@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANGARAWINFO", "Manga-Raw .Info", "en") @MangaSourceParser("MANGARAWINFO", "Manga-Raw.info", "en")
internal class MangaRawInfo(context: MangaLoaderContext) : internal class MangaRawInfo(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGARAWINFO, "manga-raw.info", 20) { MadaraParser(context, MangaSource.MANGARAWINFO, "manga-raw.info", 20) {
override val postReq = true override val postReq = true

@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANGAREADCO", "Manga Read .Co", "en") @MangaSourceParser("MANGAREADCO", "MangaRead.co", "en")
internal class MangaReadCo(context: MangaLoaderContext) : internal class MangaReadCo(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGAREADCO, "mangaread.co", 16) { MadaraParser(context, MangaSource.MANGAREADCO, "mangaread.co", 16) {
override val tagPrefix = "m-genre/" override val tagPrefix = "m-genre/"

@ -5,6 +5,6 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANGAROCKTEAM", "Manga Rock .Team", "en") @MangaSourceParser("MANGAROCKTEAM", "MangaRock.team", "en")
internal class MangaRockTeam(context: MangaLoaderContext) : internal class MangaRockTeam(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGAROCKTEAM, "mangarock.team", 18) MadaraParser(context, MangaSource.MANGAROCKTEAM, "mangarock.team", 18)

@ -5,6 +5,6 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANGATX_GG", "MangaTx .Gg", "en") @MangaSourceParser("MANGATX_GG", "MangaTx.gg", "en")
internal class MangaTxGg(context: MangaLoaderContext) : internal class MangaTxGg(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGATX_GG, "mangatx.gg") MadaraParser(context, MangaSource.MANGATX_GG, "mangatx.gg")

@ -5,6 +5,6 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANGATXUNOFFICIAL", "Manga-Tx .Com", "en") @MangaSourceParser("MANGATXUNOFFICIAL", "Manga-Tx.com", "en")
internal class MangaTxUnofficial(context: MangaLoaderContext) : internal class MangaTxUnofficial(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGATXUNOFFICIAL, "manga-tx.com") MadaraParser(context, MangaSource.MANGATXUNOFFICIAL, "manga-tx.com")

@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANGAUPDATESTOP", "Manga Updates .Top", "en") @MangaSourceParser("MANGAUPDATESTOP", "MangaUpdates.top", "en")
internal class MangaUpdatesTop(context: MangaLoaderContext) : internal class MangaUpdatesTop(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGAUPDATESTOP, "mangaupdates.top", 10) { MadaraParser(context, MangaSource.MANGAUPDATESTOP, "mangaupdates.top", 10) {
override val postReq = true override val postReq = true

@ -6,7 +6,7 @@ import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANGAOWL_ONE", "Manga Owl .One", "en", ContentType.HENTAI) @MangaSourceParser("MANGAOWL_ONE", "MangaOwl.one", "en", ContentType.HENTAI)
internal class MangaowlOne(context: MangaLoaderContext) : internal class MangaowlOne(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGAOWL_ONE, "mangaowl.one") { MadaraParser(context, MangaSource.MANGAOWL_ONE, "mangaowl.one") {
override val postReq = true override val postReq = true

@ -5,6 +5,6 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANHUAMANHWAONLINE", "Manhua Manhwa .Online", "en") @MangaSourceParser("MANHUAMANHWAONLINE", "ManhuaManhwa.online", "en")
internal class ManhuaManhwaOnline(context: MangaLoaderContext) : internal class ManhuaManhwaOnline(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANHUAMANHWAONLINE, "manhuamanhwa.online", 10) MadaraParser(context, MangaSource.MANHUAMANHWAONLINE, "manhuamanhwa.online", 10)

@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANHUASCANINFO", "Manhua Scan .Info", "en") @MangaSourceParser("MANHUASCANINFO", "ManhuaScan.info", "en")
internal class ManhuaScanInfo(context: MangaLoaderContext) : internal class ManhuaScanInfo(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANHUASCANINFO, "manhuascan.info", 10) { MadaraParser(context, MangaSource.MANHUASCANINFO, "manhuascan.info", 10) {
override val postReq = true override val postReq = true

@ -6,7 +6,7 @@ import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANHWA18APP", "Manhwa 18 .App", "en", ContentType.HENTAI) @MangaSourceParser("MANHWA18APP", "Manhwa18.app", "en", ContentType.HENTAI)
internal class Manhwa18App(context: MangaLoaderContext) : internal class Manhwa18App(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANHWA18APP, "manhwa18.app") { MadaraParser(context, MangaSource.MANHWA18APP, "manhwa18.app") {
override val postReq = true override val postReq = true

@ -6,7 +6,7 @@ import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANHWA18ORG", "Manhwa 18 .Org", "en", ContentType.HENTAI) @MangaSourceParser("MANHWA18ORG", "Manhwa18.org", "en", ContentType.HENTAI)
internal class Manhwa18Org(context: MangaLoaderContext) : internal class Manhwa18Org(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANHWA18ORG, "manhwa18.org") { MadaraParser(context, MangaSource.MANHWA18ORG, "manhwa18.org") {
override val postReq = true override val postReq = true

@ -5,6 +5,6 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANHWA2READ", "Manhwa 2 Read", "en") @MangaSourceParser("MANHWA2READ", "Manhwa2read", "en")
internal class Manhwa2Read(context: MangaLoaderContext) : internal class Manhwa2Read(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANHWA2READ, "manhwa2read.com") MadaraParser(context, MangaSource.MANHWA2READ, "manhwa2read.com")

@ -6,7 +6,7 @@ import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANHWAHENTAITO", "Manhwa Hentai .To", "en", ContentType.HENTAI) @MangaSourceParser("MANHWAHENTAITO", "ManhwaHentai.to", "en", ContentType.HENTAI)
internal class ManhwaHentaiTo(context: MangaLoaderContext) : internal class ManhwaHentaiTo(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANHWAHENTAITO, "manhwahentai.to", 10) { MadaraParser(context, MangaSource.MANHWAHENTAITO, "manhwahentai.to", 10) {
override val tagPrefix = "pornhwa-genre/" override val tagPrefix = "pornhwa-genre/"

@ -6,7 +6,7 @@ import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANHWARAW_COM", "Manhwa Raw .Com", "en", ContentType.HENTAI) @MangaSourceParser("MANHWARAW_COM", "ManhwaRaw.com", "en", ContentType.HENTAI)
internal class ManhwaRawCom(context: MangaLoaderContext) : internal class ManhwaRawCom(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANHWARAW_COM, "manhwaraw.com") { MadaraParser(context, MangaSource.MANHWARAW_COM, "manhwaraw.com") {
override val postReq = true override val postReq = true

@ -6,7 +6,7 @@ import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANYTOONME", "Many Toon .Me", "en", ContentType.HENTAI) @MangaSourceParser("MANYTOONME", "ManyToon.me", "en", ContentType.HENTAI)
internal class ManyToonMe(context: MangaLoaderContext) : internal class ManyToonMe(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANYTOONME, "manytoon.me", 20) { MadaraParser(context, MangaSource.MANYTOONME, "manytoon.me", 20) {
override val listUrl = "manhwa/" override val listUrl = "manhwa/"

@ -5,6 +5,6 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("RIO2MANGANET", "Rio 2 Manga .Net", "en") @MangaSourceParser("RIO2MANGANET", "Rio2Manga.net", "en")
internal class Rio2MangaNet(context: MangaLoaderContext) : internal class Rio2MangaNet(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.RIO2MANGANET, "rio2manga.net", 10) MadaraParser(context, MangaSource.RIO2MANGANET, "rio2manga.net", 10)

@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("STKISSMANGABLOG", "St kiss Manga .Blog", "en") @MangaSourceParser("STKISSMANGABLOG", "1stKissManga.blog", "en")
internal class StkissMangaBlog(context: MangaLoaderContext) : internal class StkissMangaBlog(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.STKISSMANGABLOG, "1stkissmanga.blog", 10) { MadaraParser(context, MangaSource.STKISSMANGABLOG, "1stkissmanga.blog", 10) {
override val postReq = true override val postReq = true

@ -5,6 +5,6 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("STKISSMANGA_COM", "1St Kiss-Manga .Com", "en") @MangaSourceParser("STKISSMANGA_COM", "1stKissManga.com", "en")
internal class StkissMangaCom(context: MangaLoaderContext) : internal class StkissMangaCom(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.STKISSMANGA_COM, "1stkiss-manga.com", 10) MadaraParser(context, MangaSource.STKISSMANGA_COM, "1stkiss-manga.com", 10)

@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("STKISSMANGA_TV", "1St Kiss Manga .Tv", "en") @MangaSourceParser("STKISSMANGA_TV", "1stKissManga.tv", "en")
internal class StkissMangaTv(context: MangaLoaderContext) : internal class StkissMangaTv(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.STKISSMANGA_TV, "1stkissmanga.tv", 20) { MadaraParser(context, MangaSource.STKISSMANGA_TV, "1stkissmanga.tv", 20) {
override val postReq = true override val postReq = true

@ -5,6 +5,6 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("TOONILYNET", "Toonily .Net", "en") @MangaSourceParser("TOONILYNET", "Toonily.net", "en")
internal class ToonilyNet(context: MangaLoaderContext) : internal class ToonilyNet(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.TOONILYNET, "toonily.net") MadaraParser(context, MangaSource.TOONILYNET, "toonily.net")

@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("WEBTOON", "Webtoon .Uk", "en") @MangaSourceParser("WEBTOON", "Webtoon.uk", "en")
internal class Webtoon(context: MangaLoaderContext) : internal class Webtoon(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.WEBTOON, "webtoon.uk", 20) { MadaraParser(context, MangaSource.WEBTOON, "webtoon.uk", 20) {
override val tagPrefix = "manhwa-genre/" override val tagPrefix = "manhwa-genre/"

@ -6,7 +6,7 @@ import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("WEBTOONXYZ", "Webtoon .Xyz", "en", ContentType.HENTAI) @MangaSourceParser("WEBTOONXYZ", "Webtoon.xyz", "en", ContentType.HENTAI)
internal class WebtoonXyz(context: MangaLoaderContext) : internal class WebtoonXyz(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.WEBTOONXYZ, "www.webtoon.xyz", 20) { MadaraParser(context, MangaSource.WEBTOONXYZ, "www.webtoon.xyz", 20) {
override val tagPrefix = "webtoon-genre/" override val tagPrefix = "webtoon-genre/"

@ -5,6 +5,6 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("ZINMANGA_TOP", "Zin Manga .Top", "en") @MangaSourceParser("ZINMANGA_TOP", "ZinManga.top", "en")
internal class ZinMangaTop(context: MangaLoaderContext) : internal class ZinMangaTop(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.ZINMANGA_TOP, "zinmanga.top", 20) MadaraParser(context, MangaSource.ZINMANGA_TOP, "zinmanga.top", 20)

@ -10,9 +10,10 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
import org.koitharu.kotatsu.parsers.util.* import org.koitharu.kotatsu.parsers.util.*
import java.util.Locale import java.util.Locale
@MangaSourceParser("DOUJIN_HENTAI_NET", "Doujin Hentai .Net", "es", ContentType.HENTAI) @MangaSourceParser("DOUJIN_HENTAI_NET", "DoujinHentai.net", "es", ContentType.HENTAI)
internal class DoujinHentaiNet(context: MangaLoaderContext) : internal class DoujinHentaiNet(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.DOUJIN_HENTAI_NET, "doujinhentai.net", 18) { MadaraParser(context, MangaSource.DOUJIN_HENTAI_NET, "doujinhentai.net", 18) {
override val datePattern = "dd MMM. yyyy" override val datePattern = "dd MMM. yyyy"
override val sourceLocale: Locale = Locale.ENGLISH override val sourceLocale: Locale = Locale.ENGLISH
override val listUrl = "lista-manga-hentai/" override val listUrl = "lista-manga-hentai/"

@ -6,7 +6,7 @@ import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("INFRAFANDUB", "infra Fandub", "es") @MangaSourceParser("INFRAFANDUB", "Infra Fandub", "es")
internal class Infrafandub(context: MangaLoaderContext) : internal class Infrafandub(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.INFRAFANDUB, "infrafandub.xyz", 10) { MadaraParser(context, MangaSource.INFRAFANDUB, "infrafandub.xyz", 10) {
override val datePattern = "dd/MM/yyyy" override val datePattern = "dd/MM/yyyy"

@ -8,6 +8,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, MangaSource.MANGA_CRAB, "manga-crab.com") { MadaraParser(context, MangaSource.MANGA_CRAB, "manga-crab.com") {
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/"

@ -8,5 +8,6 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANGAMUNDODRAMA", "MangaMundoDrama", "es") @MangaSourceParser("MANGAMUNDODRAMA", "MangaMundoDrama", "es")
internal class MangaMundoDrama(context: MangaLoaderContext) : internal class MangaMundoDrama(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGAMUNDODRAMA, "manga.mundodrama.site") { MadaraParser(context, MangaSource.MANGAMUNDODRAMA, "manga.mundodrama.site") {
override val listUrl = "mg/" override val listUrl = "mg/"
} }

@ -8,5 +8,6 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANGAREADERPRO", "MangaReaderPro", "es") @MangaSourceParser("MANGAREADERPRO", "MangaReaderPro", "es")
internal class MangaReaderpro(context: MangaLoaderContext) : internal class MangaReaderpro(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGAREADERPRO, "mangareaderpro.com", 10) { MadaraParser(context, MangaSource.MANGAREADERPRO, "mangareaderpro.com", 10) {
override val datePattern = "MM/dd/yyyy" override val datePattern = "MM/dd/yyyy"
} }

@ -8,5 +8,6 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANHUAFENIX", "ManhuaFenix", "es") @MangaSourceParser("MANHUAFENIX", "ManhuaFenix", "es")
internal class ManhuaFenix(context: MangaLoaderContext) : internal class ManhuaFenix(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANHUAFENIX, "manhua-fenix.com") { MadaraParser(context, MangaSource.MANHUAFENIX, "manhua-fenix.com") {
override val postReq = true override val postReq = true
} }

@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("STICKHORSE", "Stickhorse", "es") @MangaSourceParser("STICKHORSE", "StickHorse", "es")
internal class Stickhorse(context: MangaLoaderContext) : internal class Stickhorse(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.STICKHORSE, "www.stickhorse.cl") { MadaraParser(context, MangaSource.STICKHORSE, "www.stickhorse.cl") {
override val postReq = true override val postReq = true

@ -8,7 +8,7 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
import org.koitharu.kotatsu.parsers.util.domain import org.koitharu.kotatsu.parsers.util.domain
import org.koitharu.kotatsu.parsers.util.insertCookies import org.koitharu.kotatsu.parsers.util.insertCookies
@MangaSourceParser("HHENTAIFR", "H Hentai", "fr", ContentType.HENTAI) @MangaSourceParser("HHENTAIFR", "H-Hentai", "fr", ContentType.HENTAI)
internal class HhentaiFr(context: MangaLoaderContext) : internal class HhentaiFr(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.HHENTAIFR, "hhentai.fr") { MadaraParser(context, MangaSource.HHENTAIFR, "hhentai.fr") {

@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANGA_SCANTRAD", "Manga Scantrad .Io", "fr") @MangaSourceParser("MANGA_SCANTRAD", "MangaScantrad.io", "fr")
internal class MangaScantrad(context: MangaLoaderContext) : internal class MangaScantrad(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGA_SCANTRAD, "manga-scantrad.io") { MadaraParser(context, MangaSource.MANGA_SCANTRAD, "manga-scantrad.io") {
override val datePattern = "d MMMM yyyy" override val datePattern = "d MMMM yyyy"

@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANGASCANTRADUNOFFICIAL", "Manga Scantrad .Fr", "fr") @MangaSourceParser("MANGASCANTRADUNOFFICIAL", "MangaScantrad.fr", "fr")
internal class MangaScantradUnofficial(context: MangaLoaderContext) : internal class MangaScantradUnofficial(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGASCANTRADUNOFFICIAL, "www.mangascantrad.fr", 10) { MadaraParser(context, MangaSource.MANGASCANTRADUNOFFICIAL, "www.mangascantrad.fr", 10) {
override val datePattern = "dd/MM/yyyy" override val datePattern = "dd/MM/yyyy"

@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANGASORIGINES", "Mangas Origines .Fr", "fr") @MangaSourceParser("MANGASORIGINES", "MangasOrigines.fr", "fr")
internal class MangasOrigines(context: MangaLoaderContext) : internal class MangasOrigines(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGASORIGINES, "mangas-origines.fr") { MadaraParser(context, MangaSource.MANGASORIGINES, "mangas-origines.fr") {
override val datePattern = "dd/MM/yyyy" override val datePattern = "dd/MM/yyyy"

@ -5,6 +5,6 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANGASORIGINESUNOFFICIAL", "Mangas Origines .Xyz", "fr") @MangaSourceParser("MANGASORIGINESUNOFFICIAL", "MangasOrigines.xyz", "fr")
internal class MangasOriginesUnofficial(context: MangaLoaderContext) : internal class MangasOriginesUnofficial(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGASORIGINESUNOFFICIAL, "mangas-origines.xyz") MadaraParser(context, MangaSource.MANGASORIGINESUNOFFICIAL, "mangas-origines.xyz")

@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("NEOX_SCANS", "Neox scans", "pt") @MangaSourceParser("NEOX_SCANS", "NeoxScans", "pt")
internal class Neoxscans(context: MangaLoaderContext) : internal class Neoxscans(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.NEOX_SCANS, "neoxscan.net", 18) { MadaraParser(context, MangaSource.NEOX_SCANS, "neoxscan.net", 18) {
override val datePattern = "dd/MM/yyyy" override val datePattern = "dd/MM/yyyy"

@ -6,6 +6,6 @@ import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("PRISMA_HENTAI", "Prisma hentai", "pt", ContentType.HENTAI) @MangaSourceParser("PRISMA_HENTAI", "PrismaHentai", "pt", ContentType.HENTAI)
internal class Prismahentai(context: MangaLoaderContext) : internal class Prismahentai(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.PRISMA_HENTAI, "prismahentai.com", 18) MadaraParser(context, MangaSource.PRISMA_HENTAI, "prismahentai.com", 18)

@ -6,6 +6,6 @@ import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("PSUNICORN", "Psunicorn", "pt", ContentType.HENTAI) @MangaSourceParser("PSUNICORN", "PsUnicorn", "pt", ContentType.HENTAI)
internal class Psunicorn(context: MangaLoaderContext) : internal class Psunicorn(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.PSUNICORN, "psunicorn.com") MadaraParser(context, MangaSource.PSUNICORN, "psunicorn.com")

@ -6,7 +6,7 @@ import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANGAZAVR", "Manga Zavr", "ru", ContentType.HENTAI) @MangaSourceParser("MANGAZAVR", "Mangazavr", "ru", ContentType.HENTAI)
internal class Mangazavr(context: MangaLoaderContext) : internal class Mangazavr(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGAZAVR, "mangazavr.ru") { MadaraParser(context, MangaSource.MANGAZAVR, "mangazavr.ru") {
override val listUrl = "/?s=&post_type=wp-manga" override val listUrl = "/?s=&post_type=wp-manga"

@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("MANGAKEYFI", "Manga keyfi", "tr") @MangaSourceParser("MANGAKEYFI", "MangaKeyfi", "tr")
internal class Mangakeyfi(context: MangaLoaderContext) : internal class Mangakeyfi(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGAKEYFI, "mangakeyfi.net", 20) { MadaraParser(context, MangaSource.MANGAKEYFI, "mangakeyfi.net", 20) {
override val tagPrefix = "mangalar-genre/" override val tagPrefix = "mangalar-genre/"

@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("WEBTOONTR", "Webtoon tr", "tr") @MangaSourceParser("WEBTOONTR", "WebtoonTr", "tr")
internal class Webtoontr(context: MangaLoaderContext) : internal class Webtoontr(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.WEBTOONTR, "webtoontr.net", 16) { MadaraParser(context, MangaSource.WEBTOONTR, "webtoontr.net", 16) {
override val tagPrefix = "webtoon-kategori/" override val tagPrefix = "webtoon-kategori/"

@ -6,7 +6,7 @@ import org.koitharu.kotatsu.parsers.model.*
import org.koitharu.kotatsu.parsers.site.manga18.Manga18Parser import org.koitharu.kotatsu.parsers.site.manga18.Manga18Parser
import org.koitharu.kotatsu.parsers.util.* import org.koitharu.kotatsu.parsers.util.*
@MangaSourceParser("HENTAI3ZCC", "Hentai3z .Cc", "en", ContentType.HENTAI) @MangaSourceParser("HENTAI3ZCC", "Hentai3z.cc", "en", ContentType.HENTAI)
internal class Hentai3zCc(context: MangaLoaderContext) : internal class Hentai3zCc(context: MangaLoaderContext) :
Manga18Parser(context, MangaSource.HENTAI3ZCC, "hentai3z.cc") { Manga18Parser(context, MangaSource.HENTAI3ZCC, "hentai3z.cc") {

@ -3,9 +3,15 @@ package org.koitharu.kotatsu.parsers.site.manga18.zh
import org.jsoup.nodes.Document 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.* import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.MangaChapter
import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.model.MangaTag
import org.koitharu.kotatsu.parsers.site.manga18.Manga18Parser import org.koitharu.kotatsu.parsers.site.manga18.Manga18Parser
import org.koitharu.kotatsu.parsers.util.* import org.koitharu.kotatsu.parsers.util.attrAsRelativeUrl
import org.koitharu.kotatsu.parsers.util.generateUid
import org.koitharu.kotatsu.parsers.util.mapChapters
import org.koitharu.kotatsu.parsers.util.selectFirstOrThrow
@MangaSourceParser("HANMAN18", "Hanman18", "zh", ContentType.HENTAI) @MangaSourceParser("HANMAN18", "Hanman18", "zh", ContentType.HENTAI)
internal class Hanman18(context: MangaLoaderContext) : internal class Hanman18(context: MangaLoaderContext) :

@ -6,7 +6,7 @@ import org.koitharu.kotatsu.parsers.config.ConfigKey
import org.koitharu.kotatsu.parsers.model.* import org.koitharu.kotatsu.parsers.model.*
import org.koitharu.kotatsu.parsers.site.mangabox.MangaboxParser import org.koitharu.kotatsu.parsers.site.mangabox.MangaboxParser
@MangaSourceParser("MANGANELO_COM", "Manga Nelo .Com", "en") @MangaSourceParser("MANGANELO_COM", "MangaNelo.com", "en")
internal class MangaNeloCom(context: MangaLoaderContext) : internal class MangaNeloCom(context: MangaLoaderContext) :
MangaboxParser(context, MangaSource.MANGANELO_COM) { MangaboxParser(context, MangaSource.MANGANELO_COM) {
override val configKeyDomain = ConfigKey.Domain("m.manganelo.com", "chapmanganelo.com") override val configKeyDomain = ConfigKey.Domain("m.manganelo.com", "chapmanganelo.com")

@ -6,5 +6,5 @@ import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@MangaSourceParser("AREASCANS", "AreaScans", "ar") @MangaSourceParser("AREASCANS", "AreaScans", "ar")
internal class Areascans(context: MangaLoaderContext) : internal class AreaScans(context: MangaLoaderContext) :
MangaReaderParser(context, MangaSource.AREASCANS, "www.areascans.net", pageSize = 20, searchPageSize = 10) MangaReaderParser(context, MangaSource.AREASCANS, "www.areascans.net", pageSize = 20, searchPageSize = 10)

@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@MangaSourceParser("ELARCPAGE", "Elarcpage", "en") @MangaSourceParser("ELARCPAGE", "ElarcPage", "en")
internal class Elarcpage(context: MangaLoaderContext) : internal class Elarcpage(context: MangaLoaderContext) :
MangaReaderParser(context, MangaSource.ELARCPAGE, "elarcreader.com", pageSize = 20, searchPageSize = 10) { MangaReaderParser(context, MangaSource.ELARCPAGE, "elarcreader.com", pageSize = 20, searchPageSize = 10) {
override val listUrl = "/series" override val listUrl = "/series"

@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@MangaSourceParser("NIGHTSCANS", "Night scans", "en") @MangaSourceParser("NIGHTSCANS", "NightScans", "en")
internal class Nightscans(context: MangaLoaderContext) : internal class Nightscans(context: MangaLoaderContext) :
MangaReaderParser(context, MangaSource.NIGHTSCANS, "nightscans.net", pageSize = 20, searchPageSize = 10) { MangaReaderParser(context, MangaSource.NIGHTSCANS, "nightscans.net", pageSize = 20, searchPageSize = 10) {
override val listUrl = "/series" override val listUrl = "/series"

@ -6,5 +6,5 @@ import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@MangaSourceParser("GREMORYMANGAS", "GremoryMangas", "es") @MangaSourceParser("GREMORYMANGAS", "GremoryMangas", "es")
internal class GREMORYMANGAS(context: MangaLoaderContext) : internal class GremoryMangas(context: MangaLoaderContext) :
MangaReaderParser(context, MangaSource.GREMORYMANGAS, "gremorymangas.com", pageSize = 20, searchPageSize = 20) MangaReaderParser(context, MangaSource.GREMORYMANGAS, "gremorymangas.com", pageSize = 20, searchPageSize = 20)

@ -7,7 +7,7 @@ import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
import java.util.* import java.util.*
@MangaSourceParser("KOMIKLOKALCFD", "Komik Lokal .Sbs", "id", ContentType.HENTAI) @MangaSourceParser("KOMIKLOKALCFD", "KomikLokal.sbs", "id", ContentType.HENTAI)
internal class KomiklokalCfd(context: MangaLoaderContext) : internal class KomiklokalCfd(context: MangaLoaderContext) :
MangaReaderParser(context, MangaSource.KOMIKLOKALCFD, "komiklokal.sbs", pageSize = 30, searchPageSize = 10) { MangaReaderParser(context, MangaSource.KOMIKLOKALCFD, "komiklokal.sbs", pageSize = 30, searchPageSize = 10) {
override val sourceLocale: Locale = Locale.ENGLISH override val sourceLocale: Locale = Locale.ENGLISH

@ -7,7 +7,7 @@ import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
import java.util.* import java.util.*
@MangaSourceParser("MANHWAINDOICU", "Manhwa Indo .Icu", "id", ContentType.HENTAI) @MangaSourceParser("MANHWAINDOICU", "ManhwaIndo.icu", "id", ContentType.HENTAI)
internal class ManhwaIndoIcu(context: MangaLoaderContext) : internal class ManhwaIndoIcu(context: MangaLoaderContext) :
MangaReaderParser(context, MangaSource.MANHWAINDOICU, "manhwaindo.icu", pageSize = 30, searchPageSize = 10) { MangaReaderParser(context, MangaSource.MANHWAINDOICU, "manhwaindo.icu", pageSize = 30, searchPageSize = 10) {
override val sourceLocale: Locale = Locale.ENGLISH override val sourceLocale: Locale = Locale.ENGLISH

@ -6,7 +6,7 @@ import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
import java.util.* import java.util.*
@MangaSourceParser("MANHWAINDO", "Manhwa Indo .Id", "id") @MangaSourceParser("MANHWAINDO", "ManhwaIndo.id", "id")
internal class ManhwaIndoParser(context: MangaLoaderContext) : internal class ManhwaIndoParser(context: MangaLoaderContext) :
MangaReaderParser(context, MangaSource.MANHWAINDO, "manhwaindo.id", pageSize = 30, searchPageSize = 10) { MangaReaderParser(context, MangaSource.MANHWAINDO, "manhwaindo.id", pageSize = 30, searchPageSize = 10) {
override val datePattern = "MMMM dd, yyyy" override val datePattern = "MMMM dd, yyyy"

@ -5,6 +5,6 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@MangaSourceParser("LSHISTORIA", "Lshistoria", "tr") @MangaSourceParser("LSHISTORIA", "LsHistoria", "tr")
internal class Lshistoria(context: MangaLoaderContext) : internal class Lshistoria(context: MangaLoaderContext) :
MangaReaderParser(context, MangaSource.LSHISTORIA, "lshistoria.com", pageSize = 20, searchPageSize = 10) MangaReaderParser(context, MangaSource.LSHISTORIA, "lshistoria.com", pageSize = 20, searchPageSize = 10)

@ -2,10 +2,11 @@ package org.koitharu.kotatsu.parsers.site.mmrcms.en
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.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.mmrcms.MmrcmsParser import org.koitharu.kotatsu.parsers.site.mmrcms.MmrcmsParser
@MangaSourceParser("READCOMICSONLINE", "Read Comics Online", "en") @MangaSourceParser("READCOMICSONLINE", "ReadComicsOnline", "en", ContentType.COMICS)
internal class ReadComicsOnline(context: MangaLoaderContext) : internal class ReadComicsOnline(context: MangaLoaderContext) :
MmrcmsParser(context, MangaSource.READCOMICSONLINE, "readcomicsonline.ru") { MmrcmsParser(context, MangaSource.READCOMICSONLINE, "readcomicsonline.ru") {
override val selectState = "dt:contains(Status)" override val selectState = "dt:contains(Status)"

@ -6,7 +6,7 @@ import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.mmrcms.MmrcmsParser import org.koitharu.kotatsu.parsers.site.mmrcms.MmrcmsParser
import java.util.Locale import java.util.Locale
@MangaSourceParser("FRSCANSCOM", "Fr Scans .Com", "fr") @MangaSourceParser("FRSCANSCOM", "FrScans.com", "fr")
internal class FrScansCom(context: MangaLoaderContext) : internal class FrScansCom(context: MangaLoaderContext) :
MmrcmsParser(context, MangaSource.FRSCANSCOM, "frscans.com") { MmrcmsParser(context, MangaSource.FRSCANSCOM, "frscans.com") {
override val sourceLocale: Locale = Locale.ENGLISH override val sourceLocale: Locale = Locale.ENGLISH

@ -7,7 +7,7 @@ import org.koitharu.kotatsu.parsers.site.mmrcms.MmrcmsParser
import java.util.* import java.util.*
//the search doesn't work on the source. //the search doesn't work on the source.
@MangaSourceParser("JPSCANVF", "Jp Scan Vf", "fr") @MangaSourceParser("JPSCANVF", "JpScan-vf", "fr")
internal class JpScanVf(context: MangaLoaderContext) : internal class JpScanVf(context: MangaLoaderContext) :
MmrcmsParser(context, MangaSource.JPSCANVF, "jpscan-vf.net") { MmrcmsParser(context, MangaSource.JPSCANVF, "jpscan-vf.net") {
override val sourceLocale: Locale = Locale.ENGLISH override val sourceLocale: Locale = Locale.ENGLISH

@ -6,7 +6,7 @@ import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.mmrcms.MmrcmsParser import org.koitharu.kotatsu.parsers.site.mmrcms.MmrcmsParser
import java.util.Locale import java.util.Locale
@MangaSourceParser("SCAN_FR_ORG", "Scan-Fr .Org", "fr") @MangaSourceParser("SCAN_FR_ORG", "Scan-Fr.org", "fr")
internal class ScanFrOrg(context: MangaLoaderContext) : internal class ScanFrOrg(context: MangaLoaderContext) :
MmrcmsParser(context, MangaSource.SCAN_FR_ORG, "www.scan-fr.org") { MmrcmsParser(context, MangaSource.SCAN_FR_ORG, "www.scan-fr.org") {

@ -6,7 +6,7 @@ import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.mmrcms.MmrcmsParser import org.koitharu.kotatsu.parsers.site.mmrcms.MmrcmsParser
import java.util.Locale import java.util.Locale
@MangaSourceParser("SCANMANGAVF_WS", "Scan Manga Vf .Ws", "fr") @MangaSourceParser("SCANMANGAVF_WS", "ScanMangaVf.ws", "fr")
internal class ScanMangaVfWs(context: MangaLoaderContext) : internal class ScanMangaVfWs(context: MangaLoaderContext) :
MmrcmsParser(context, MangaSource.SCANMANGAVF_WS, "scanmanga-vf.ws") { MmrcmsParser(context, MangaSource.SCANMANGAVF_WS, "scanmanga-vf.ws") {
override val imgUpdated = ".jpg" override val imgUpdated = ".jpg"

@ -6,7 +6,7 @@ import org.koitharu.kotatsu.parsers.model.ContentType
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.zmanga.ZMangaParser import org.koitharu.kotatsu.parsers.site.zmanga.ZMangaParser
@MangaSourceParser("KOMIKINDO_INFO", "Komik Indo .Info", "id", ContentType.HENTAI) @MangaSourceParser("KOMIKINDO_INFO", "KomikIndo.info", "id", ContentType.HENTAI)
internal class KomikIndoInfo(context: MangaLoaderContext) : internal class KomikIndoInfo(context: MangaLoaderContext) :
ZMangaParser(context, MangaSource.KOMIKINDO_INFO, "komikindo.info") { ZMangaParser(context, MangaSource.KOMIKINDO_INFO, "komikindo.info") {
override val datePattern = "dd MMM yyyy" override val datePattern = "dd MMM yyyy"

@ -5,6 +5,6 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.zmanga.ZMangaParser import org.koitharu.kotatsu.parsers.site.zmanga.ZMangaParser
@MangaSourceParser("NEU_MANGA", "Neu Manga .Net", "id") @MangaSourceParser("NEU_MANGA", "NeuManga.net", "id")
internal class NeuManga(context: MangaLoaderContext) : internal class NeuManga(context: MangaLoaderContext) :
ZMangaParser(context, MangaSource.NEU_MANGA, "neumanga.net") ZMangaParser(context, MangaSource.NEU_MANGA, "neumanga.net")

Loading…
Cancel
Save