Fix sources titles

pull/327/head
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,
/** /**

@ -13,7 +13,7 @@ import org.koitharu.kotatsu.parsers.model.*
import org.koitharu.kotatsu.parsers.util.* import org.koitharu.kotatsu.parsers.util.*
import java.util.* import java.util.*
@MangaSourceParser("HENTAIFOX", "Hentai Fox", type = ContentType.HENTAI) @MangaSourceParser("HENTAIFOX", "HentaiFox", type = ContentType.HENTAI)
internal class HentaiFox(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.HENTAIFOX, 20) { internal class HentaiFox(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.HENTAIFOX, 20) {
override val sortOrders: Set<SortOrder> = EnumSet.of(SortOrder.UPDATED) override val sortOrders: Set<SortOrder> = EnumSet.of(SortOrder.UPDATED)

@ -270,25 +270,25 @@ internal abstract class LineWebtoonsParser(
return builder.build() return builder.build()
} }
@MangaSourceParser("LINEWEBTOONS_EN", "Line Webtoons English", "en", type = ContentType.MANGA) @MangaSourceParser("LINEWEBTOONS_EN", "LineWebtoons English", "en", type = ContentType.MANGA)
class English(context: MangaLoaderContext) : LineWebtoonsParser(context, MangaSource.LINEWEBTOONS_EN) class English(context: MangaLoaderContext) : LineWebtoonsParser(context, MangaSource.LINEWEBTOONS_EN)
@MangaSourceParser("LINEWEBTOONS_ZH", "Line Webtoons Chinese", "zh", type = ContentType.MANGA) @MangaSourceParser("LINEWEBTOONS_ZH", "LineWebtoons Chinese", "zh", type = ContentType.MANGA)
class Chinese(context: MangaLoaderContext) : LineWebtoonsParser(context, MangaSource.LINEWEBTOONS_ZH) class Chinese(context: MangaLoaderContext) : LineWebtoonsParser(context, MangaSource.LINEWEBTOONS_ZH)
@MangaSourceParser("LINEWEBTOONS_TH", "Line Webtoons Thai", "th", type = ContentType.MANGA) @MangaSourceParser("LINEWEBTOONS_TH", "LineWebtoons Thai", "th", type = ContentType.MANGA)
class Thai(context: MangaLoaderContext) : LineWebtoonsParser(context, MangaSource.LINEWEBTOONS_TH) class Thai(context: MangaLoaderContext) : LineWebtoonsParser(context, MangaSource.LINEWEBTOONS_TH)
@MangaSourceParser("LINEWEBTOONS_ID", "Line Webtoons Indonesian", "id", type = ContentType.MANGA) @MangaSourceParser("LINEWEBTOONS_ID", "LineWebtoons Indonesian", "id", type = ContentType.MANGA)
class Indonesian(context: MangaLoaderContext) : LineWebtoonsParser(context, MangaSource.LINEWEBTOONS_ID) class Indonesian(context: MangaLoaderContext) : LineWebtoonsParser(context, MangaSource.LINEWEBTOONS_ID)
@MangaSourceParser("LINEWEBTOONS_ES", "Line Webtoons Spanish", "es", type = ContentType.MANGA) @MangaSourceParser("LINEWEBTOONS_ES", "LineWebtoons Spanish", "es", type = ContentType.MANGA)
class Spanish(context: MangaLoaderContext) : LineWebtoonsParser(context, MangaSource.LINEWEBTOONS_ES) class Spanish(context: MangaLoaderContext) : LineWebtoonsParser(context, MangaSource.LINEWEBTOONS_ES)
@MangaSourceParser("LINEWEBTOONS_FR", "Line Webtoons French", "fr", type = ContentType.MANGA) @MangaSourceParser("LINEWEBTOONS_FR", "LineWebtoons French", "fr", type = ContentType.MANGA)
class French(context: MangaLoaderContext) : LineWebtoonsParser(context, MangaSource.LINEWEBTOONS_FR) class French(context: MangaLoaderContext) : LineWebtoonsParser(context, MangaSource.LINEWEBTOONS_FR)
@MangaSourceParser("LINEWEBTOONS_DE", "Line Webtoons German", "de", type = ContentType.MANGA) @MangaSourceParser("LINEWEBTOONS_DE", "LineWebtoons German", "de", type = ContentType.MANGA)
class German(context: MangaLoaderContext) : LineWebtoonsParser(context, MangaSource.LINEWEBTOONS_DE) class German(context: MangaLoaderContext) : LineWebtoonsParser(context, MangaSource.LINEWEBTOONS_DE)
private inner class WebtoonsUrlSigner(private val secret: String) { private inner class WebtoonsUrlSigner(private val secret: String) {

@ -14,7 +14,7 @@ import java.util.EnumSet
import java.util.Locale import java.util.Locale
@MangaSourceParser("PAPSCAN", "Pap Scan", "fr") @MangaSourceParser("PAPSCAN", "PapScan", "fr")
internal class PapScan(context: MangaLoaderContext) : internal class PapScan(context: MangaLoaderContext) :
AnimeBootstrapParser(context, MangaSource.PAPSCAN, "papscan.com") { AnimeBootstrapParser(context, MangaSource.PAPSCAN, "papscan.com") {

@ -7,6 +7,6 @@ import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.animebootstrap.AnimeBootstrapParser import org.koitharu.kotatsu.parsers.site.animebootstrap.AnimeBootstrapParser
@MangaSourceParser("NEUMANGA", "Neu Manga", "id") @MangaSourceParser("NEUMANGA", "NeuManga", "id")
internal class NeuManga(context: MangaLoaderContext) : internal class NeuManga(context: MangaLoaderContext) :
AnimeBootstrapParser(context, MangaSource.NEUMANGA, "neumanga.xyz") AnimeBootstrapParser(context, MangaSource.NEUMANGA, "neumanga.xyz")

@ -6,6 +6,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.animebootstrap.AnimeBootstrapParser import org.koitharu.kotatsu.parsers.site.animebootstrap.AnimeBootstrapParser
@MangaSourceParser("SEKTEKOMIK", "Sekte Komik", "id") @MangaSourceParser("SEKTEKOMIK", "SekteKomik", "id")
internal class SekteKomik(context: MangaLoaderContext) : internal class SekteKomik(context: MangaLoaderContext) :
AnimeBootstrapParser(context, MangaSource.SEKTEKOMIK, "sektekomik.xyz") AnimeBootstrapParser(context, MangaSource.SEKTEKOMIK, "sektekomik.xyz")

@ -15,7 +15,7 @@ import org.koitharu.kotatsu.parsers.util.json.mapJSONIndexed
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
@MangaSourceParser("FLIXSCANS", "Flix Scans", "ar") @MangaSourceParser("FLIXSCANS", "FlixScans", "ar")
internal class FlixScans(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.FLIXSCANS, 18) { internal class FlixScans(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.FLIXSCANS, 18) {
override val sortOrders: Set<SortOrder> = EnumSet.of(SortOrder.UPDATED) override val sortOrders: Set<SortOrder> = EnumSet.of(SortOrder.UPDATED)

@ -10,7 +10,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("MANGASTORM", "Manga Storm", "ar") @MangaSourceParser("MANGASTORM", "MangaStorm", "ar")
internal class MangaStorm(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.MANGASTORM, 30) { internal class MangaStorm(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.MANGASTORM, 30) {
override val sortOrders: Set<SortOrder> = EnumSet.of(SortOrder.POPULARITY) override val sortOrders: Set<SortOrder> = EnumSet.of(SortOrder.POPULARITY)

@ -9,7 +9,7 @@ import org.koitharu.kotatsu.parsers.model.*
import org.koitharu.kotatsu.parsers.util.* import org.koitharu.kotatsu.parsers.util.*
import java.util.* import java.util.*
@MangaSourceParser("CLONEMANGA", "Clone Manga", "en") @MangaSourceParser("CLONEMANGA", "CloneManga", "en")
internal class CloneMangaParser(context: MangaLoaderContext) : MangaParser(context, MangaSource.CLONEMANGA) { internal class CloneMangaParser(context: MangaLoaderContext) : MangaParser(context, MangaSource.CLONEMANGA) {
override val sortOrders: Set<SortOrder> = Collections.singleton( override val sortOrders: Set<SortOrder> = Collections.singleton(

@ -11,7 +11,7 @@ import org.koitharu.kotatsu.parsers.util.*
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
@MangaSourceParser("COMICEXTRA", "Comic Extra", "en") @MangaSourceParser("COMICEXTRA", "ComicExtra", "en")
internal class ComicExtra(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.COMICEXTRA, 25) { internal class ComicExtra(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.COMICEXTRA, 25) {
override val sortOrders: Set<SortOrder> = EnumSet.of(SortOrder.POPULARITY, SortOrder.UPDATED, SortOrder.NEWEST) override val sortOrders: Set<SortOrder> = EnumSet.of(SortOrder.POPULARITY, SortOrder.UPDATED, SortOrder.NEWEST)

@ -13,7 +13,7 @@ import org.koitharu.kotatsu.parsers.util.*
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
@MangaSourceParser("DYNASTYSCANS", "Dynasty Scans", "en") @MangaSourceParser("DYNASTYSCANS", "DynastyScans", "en")
internal class DynastyScans(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.DYNASTYSCANS, 117) { internal class DynastyScans(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.DYNASTYSCANS, 117) {
override val sortOrders: Set<SortOrder> = EnumSet.of(SortOrder.ALPHABETICAL) override val sortOrders: Set<SortOrder> = EnumSet.of(SortOrder.ALPHABETICAL)
override val configKeyDomain = ConfigKey.Domain("dynasty-scans.com") override val configKeyDomain = ConfigKey.Domain("dynasty-scans.com")

@ -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 java.text.DateFormat
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
@MangaSourceParser("LIKEMANGA", "Like Manga", "en") @MangaSourceParser("LIKEMANGA", "LikeManga", "en")
internal class LikeManga(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.LIKEMANGA, 36) { internal class LikeManga(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.LIKEMANGA, 36) {
override val sortOrders: Set<SortOrder> = EnumSet.of(SortOrder.UPDATED, SortOrder.POPULARITY, SortOrder.NEWEST) override val sortOrders: Set<SortOrder> = EnumSet.of(SortOrder.UPDATED, SortOrder.POPULARITY, SortOrder.NEWEST)

@ -11,7 +11,7 @@ import org.koitharu.kotatsu.parsers.util.*
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
@MangaSourceParser("MANGAGEKO", "Manga Geko", "en") @MangaSourceParser("MANGAGEKO", "MangaGeko", "en")
internal class MangaGeko(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.MANGAGEKO, 30) { internal class MangaGeko(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.MANGAGEKO, 30) {
override val sortOrders: Set<SortOrder> = EnumSet.of(SortOrder.POPULARITY, SortOrder.UPDATED, SortOrder.NEWEST) override val sortOrders: Set<SortOrder> = EnumSet.of(SortOrder.POPULARITY, SortOrder.UPDATED, SortOrder.NEWEST)

@ -10,7 +10,7 @@ import java.text.DateFormat
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
@MangaSourceParser("MANGATOWN", "Manga Town", "en") @MangaSourceParser("MANGATOWN", "MangaTown", "en")
internal class MangaTownParser(context: MangaLoaderContext) : MangaParser(context, MangaSource.MANGATOWN) { internal class MangaTownParser(context: MangaLoaderContext) : MangaParser(context, MangaSource.MANGATOWN) {
override val configKeyDomain = ConfigKey.Domain("www.mangatown.com") override val configKeyDomain = ConfigKey.Domain("www.mangatown.com")

@ -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) {

@ -9,7 +9,7 @@ import org.koitharu.kotatsu.parsers.model.*
import org.koitharu.kotatsu.parsers.util.* import org.koitharu.kotatsu.parsers.util.*
import java.util.* import java.util.*
@MangaSourceParser("MANHWA18", "Manhwa 18", "en", type = ContentType.HENTAI) @MangaSourceParser("MANHWA18", "Manhwa18", "en", type = ContentType.HENTAI)
class Manhwa18Parser(context: MangaLoaderContext) : class Manhwa18Parser(context: MangaLoaderContext) :
PagedMangaParser(context, MangaSource.MANHWA18, pageSize = 18, searchPageSize = 18) { PagedMangaParser(context, MangaSource.MANHWA18, pageSize = 18, searchPageSize = 18) {

@ -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") {

@ -6,7 +6,7 @@ import org.koitharu.kotatsu.parsers.model.*
import org.koitharu.kotatsu.parsers.site.fmreader.FmreaderParser import org.koitharu.kotatsu.parsers.site.fmreader.FmreaderParser
import org.koitharu.kotatsu.parsers.util.* import org.koitharu.kotatsu.parsers.util.*
@MangaSourceParser("OLIMPOSCANS", "Olimpo Scans", "es") @MangaSourceParser("OLIMPOSCANS", "OlimpoScans", "es")
internal class OlimpoScans(context: MangaLoaderContext) : internal class OlimpoScans(context: MangaLoaderContext) :
FmreaderParser(context, MangaSource.OLIMPOSCANS, "olimposcans.com") { FmreaderParser(context, MangaSource.OLIMPOSCANS, "olimposcans.com") {

@ -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("WELOVEMANGA", "We Love Manga", "ja") @MangaSourceParser("WELOVEMANGA", "WeLoveManga", "ja")
internal class WeLoveManga(context: MangaLoaderContext) : internal class WeLoveManga(context: MangaLoaderContext) :
FmreaderParser(context, MangaSource.WELOVEMANGA, "welovemanga.one") { FmreaderParser(context, MangaSource.WELOVEMANGA, "welovemanga.one") {

@ -8,7 +8,7 @@ import org.koitharu.kotatsu.parsers.model.*
import org.koitharu.kotatsu.parsers.site.foolslide.FoolSlideParser import org.koitharu.kotatsu.parsers.site.foolslide.FoolSlideParser
import org.koitharu.kotatsu.parsers.util.* import org.koitharu.kotatsu.parsers.util.*
@MangaSourceParser("ASSORTEDSCANS", "Assorted Scans", "en") @MangaSourceParser("ASSORTEDSCANS", "AssortedScans", "en")
internal class AssortedScans(context: MangaLoaderContext) : internal class AssortedScans(context: MangaLoaderContext) :
FoolSlideParser(context, MangaSource.ASSORTEDSCANS, "assortedscans.com", 56) { FoolSlideParser(context, MangaSource.ASSORTEDSCANS, "assortedscans.com", 56) {

@ -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.foolslide.FoolSlideParser import org.koitharu.kotatsu.parsers.site.foolslide.FoolSlideParser
@MangaSourceParser("DEATHTOLLSCANS", "Death Toll Scans", "en") @MangaSourceParser("DEATHTOLLSCANS", "DeathTollScans", "en")
internal class Deathtollscans(context: MangaLoaderContext) : internal class Deathtollscans(context: MangaLoaderContext) :
FoolSlideParser(context, MangaSource.DEATHTOLLSCANS, "reader.deathtollscans.net", 26) FoolSlideParser(context, MangaSource.DEATHTOLLSCANS, "reader.deathtollscans.net", 26)

@ -7,7 +7,7 @@ import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.foolslide.FoolSlideParser import org.koitharu.kotatsu.parsers.site.foolslide.FoolSlideParser
@MangaSourceParser("POWERMANGA", "Power Manga", "it") @MangaSourceParser("POWERMANGA", "PowerManga", "it")
internal class PowerManga(context: MangaLoaderContext) : internal class PowerManga(context: MangaLoaderContext) :
FoolSlideParser(context, MangaSource.POWERMANGA, "reader.powermanga.org") { FoolSlideParser(context, MangaSource.POWERMANGA, "reader.powermanga.org") {
override val pagination = false override val pagination = false

@ -7,7 +7,7 @@ import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.foolslide.FoolSlideParser import org.koitharu.kotatsu.parsers.site.foolslide.FoolSlideParser
@MangaSourceParser("RAMAREADER", "Rama Reader", "it") @MangaSourceParser("RAMAREADER", "RamaReader", "it")
internal class Ramareader(context: MangaLoaderContext) : internal class Ramareader(context: MangaLoaderContext) :
FoolSlideParser(context, MangaSource.RAMAREADER, "www.ramareader.it") { FoolSlideParser(context, MangaSource.RAMAREADER, "www.ramareader.it") {
override val searchUrl = "read/search/" override val searchUrl = "read/search/"

@ -7,7 +7,7 @@ import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.foolslide.FoolSlideParser import org.koitharu.kotatsu.parsers.site.foolslide.FoolSlideParser
@MangaSourceParser("READNIFTEAM", "Read Nif Team", "it") @MangaSourceParser("READNIFTEAM", "ReadNifTeam", "it")
internal class ReadNifteam(context: MangaLoaderContext) : internal class ReadNifteam(context: MangaLoaderContext) :
FoolSlideParser(context, MangaSource.READNIFTEAM, "read-nifteam.info") { FoolSlideParser(context, MangaSource.READNIFTEAM, "read-nifteam.info") {
override val searchUrl = "slide/search/" override val searchUrl = "slide/search/"

@ -15,7 +15,7 @@ import org.koitharu.kotatsu.parsers.util.*
import org.koitharu.kotatsu.parsers.util.json.getIntOrDefault import org.koitharu.kotatsu.parsers.util.json.getIntOrDefault
import java.util.* import java.util.*
@MangaSourceParser("BENTOMANGA", "Bento Manga", "fr") @MangaSourceParser("BENTOMANGA", "BentoManga", "fr")
internal class BentomangaParser(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.BENTOMANGA, 10) { internal class BentomangaParser(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.BENTOMANGA, 10) {
override val sortOrders: Set<SortOrder> = EnumSet.of( override val sortOrders: Set<SortOrder> = EnumSet.of(

@ -14,7 +14,7 @@ import java.text.DateFormat
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
@MangaSourceParser("FURYOSOCIETY", "Furyo Society", "fr") @MangaSourceParser("FURYOSOCIETY", "FuryoSociety", "fr")
internal class FuryoSociety(context: MangaLoaderContext) : internal class FuryoSociety(context: MangaLoaderContext) :
PagedMangaParser(context, MangaSource.FURYOSOCIETY, 0) { PagedMangaParser(context, MangaSource.FURYOSOCIETY, 0) {

@ -12,7 +12,7 @@ import org.koitharu.kotatsu.parsers.util.json.mapJSON
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
@MangaSourceParser("LEGACY_SCANS", "Legacy Scans", "fr") @MangaSourceParser("LEGACY_SCANS", "LegacyScans", "fr")
internal class LegacyScansParser(context: MangaLoaderContext) : internal class LegacyScansParser(context: MangaLoaderContext) :
PagedMangaParser(context, MangaSource.LEGACY_SCANS, 18) { PagedMangaParser(context, MangaSource.LEGACY_SCANS, 18) {

@ -11,7 +11,7 @@ import org.koitharu.kotatsu.parsers.util.*
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
@MangaSourceParser("LIRESCAN", "Lire Scan", "fr") @MangaSourceParser("LIRESCAN", "LireScan", "fr")
internal class LireScan(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.LIRESCAN, 20) { internal class LireScan(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.LIRESCAN, 20) {
override val sortOrders: Set<SortOrder> = EnumSet.of(SortOrder.UPDATED) override val sortOrders: Set<SortOrder> = EnumSet.of(SortOrder.UPDATED)

@ -13,7 +13,7 @@ import java.lang.IllegalArgumentException
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
@MangaSourceParser("LUGNICASCANS", "Lugnica Scans", "fr") @MangaSourceParser("LUGNICASCANS", "LugnicaScans", "fr")
internal class LugnicaScans(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.LUGNICASCANS, 10) { internal class LugnicaScans(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.LUGNICASCANS, 10) {
override val sortOrders: Set<SortOrder> = EnumSet.of( override val sortOrders: Set<SortOrder> = EnumSet.of(

@ -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) {

@ -12,7 +12,7 @@ import org.koitharu.kotatsu.parsers.util.*
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
@MangaSourceParser("SCANTRADUNION", "Scantrad Union", "fr") @MangaSourceParser("SCANTRADUNION", "ScantradUnion", "fr")
internal class ScantradUnion(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.SCANTRADUNION, 10) { internal class ScantradUnion(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.SCANTRADUNION, 10) {
override val sortOrders: Set<SortOrder> = EnumSet.of( override val sortOrders: Set<SortOrder> = EnumSet.of(

@ -16,7 +16,7 @@ import org.koitharu.kotatsu.parsers.util.json.mapJSON
import org.koitharu.kotatsu.parsers.util.parseJson import org.koitharu.kotatsu.parsers.util.parseJson
import org.koitharu.kotatsu.parsers.util.urlEncoded import org.koitharu.kotatsu.parsers.util.urlEncoded
@MangaSourceParser("YUGEN_MANGAS_ES", "Yugen Mangas", "es", ContentType.HENTAI) @MangaSourceParser("YUGEN_MANGAS_ES", "YugenMangas", "es", ContentType.HENTAI)
internal class YugenMangasEs(context: MangaLoaderContext) : internal class YugenMangasEs(context: MangaLoaderContext) :
HeanCms(context, MangaSource.YUGEN_MANGAS_ES, "yugenmangas.lat") { HeanCms(context, MangaSource.YUGEN_MANGAS_ES, "yugenmangas.lat") {

@ -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.heancms.HeanCms import org.koitharu.kotatsu.parsers.site.heancms.HeanCms
@MangaSourceParser("PERF_SCAN", "Perf Scan", "fr") @MangaSourceParser("PERF_SCAN", "PerfScan", "fr")
internal class PerfScan(context: MangaLoaderContext) : internal class PerfScan(context: MangaLoaderContext) :
HeanCms(context, MangaSource.PERF_SCAN, "perf-scan.fr") HeanCms(context, MangaSource.PERF_SCAN, "perf-scan.fr")

@ -6,7 +6,7 @@ import org.koitharu.kotatsu.parsers.config.ConfigKey
import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.heancms.HeanCms import org.koitharu.kotatsu.parsers.site.heancms.HeanCms
@MangaSourceParser("REAPERSCANSPT", "Reaper Scans", "pt") @MangaSourceParser("REAPERSCANSPT", "ReaperScans", "pt")
internal class ReaperScansPt(context: MangaLoaderContext) : internal class ReaperScansPt(context: MangaLoaderContext) :
HeanCms(context, MangaSource.REAPERSCANSPT, "reaperscans.net") { HeanCms(context, MangaSource.REAPERSCANSPT, "reaperscans.net") {
override val configKeyDomain = ConfigKey.Domain("reaperscans.net", "reaperbr.online") override val configKeyDomain = ConfigKey.Domain("reaperscans.net", "reaperbr.online")

@ -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.heancmsalt.HeanCmsAlt import org.koitharu.kotatsu.parsers.site.heancmsalt.HeanCmsAlt
@MangaSourceParser("LEGIONSCANS", "Cerberus Series", "es") @MangaSourceParser("LEGIONSCANS", "CerberusSeries", "es")
internal class CerberuSeries(context: MangaLoaderContext) : internal class CerberuSeries(context: MangaLoaderContext) :
HeanCmsAlt(context, MangaSource.LEGIONSCANS, "cerberuseries.xyz") HeanCmsAlt(context, MangaSource.LEGIONSCANS, "cerberuseries.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.heancmsalt.HeanCmsAlt import org.koitharu.kotatsu.parsers.site.heancmsalt.HeanCmsAlt
@MangaSourceParser("MANGAESP", "Manga Esp", "es") @MangaSourceParser("MANGAESP", "MangaEsp", "es")
internal class MangaEsp(context: MangaLoaderContext) : internal class MangaEsp(context: MangaLoaderContext) :
HeanCmsAlt(context, MangaSource.MANGAESP, "mangaesp.co", 15) { HeanCmsAlt(context, MangaSource.MANGAESP, "mangaesp.co", 15) {

@ -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("DOUJINDESU", "Doujin Desu", "id") @MangaSourceParser("DOUJINDESU", "DoujinDesu", "id")
class DoujinDesuParser(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.DOUJINDESU, pageSize = 18) { class DoujinDesuParser(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.DOUJINDESU, pageSize = 18) {
override val configKeyDomain: ConfigKey.Domain override val configKeyDomain: ConfigKey.Domain

@ -12,7 +12,7 @@ import java.util.*
private const val STATUS_ONGOING = "連載" private const val STATUS_ONGOING = "連載"
private const val STATUS_FINISHED = "完結" private const val STATUS_FINISHED = "完結"
@MangaSourceParser("NICOVIDEO_SEIGA", "Nico Video Seiga", "ja") @MangaSourceParser("NICOVIDEO_SEIGA", "NicoVideo Seiga", "ja")
class NicovideoSeigaParser(context: MangaLoaderContext) : class NicovideoSeigaParser(context: MangaLoaderContext) :
MangaParser(context, MangaSource.NICOVIDEO_SEIGA), MangaParser(context, MangaSource.NICOVIDEO_SEIGA),
MangaParserAuthProvider { MangaParserAuthProvider {

@ -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("MANGACRAZY", "Manga Crazy", "", ContentType.HENTAI) @MangaSourceParser("MANGACRAZY", "MangaCrazy", "", ContentType.HENTAI)
internal class MangaCrazy(context: MangaLoaderContext) : internal class MangaCrazy(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGACRAZY, "mangacrazy.net") { MadaraParser(context, MangaSource.MANGACRAZY, "mangacrazy.net") {
override val sourceLocale: Locale = Locale.ENGLISH override val sourceLocale: Locale = Locale.ENGLISH

@ -5,9 +5,9 @@ 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", "Manga Top", "", ContentType.HENTAI) @MangaSourceParser("MANGATOP", "MangaTop", "", ContentType.HENTAI)
internal class MangaTop(context: MangaLoaderContext) : internal class MangaTop(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGATOP, "mangatop.site") { MadaraParser(context, MangaSource.MANGATOP, "mangatop.site") {
override val datePattern = "d MMMM yyyy" override val datePattern = "d MMMM yyyy"

@ -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"

@ -14,7 +14,7 @@ import org.koitharu.kotatsu.parsers.util.mapChapters
import org.koitharu.kotatsu.parsers.util.parseFailed import org.koitharu.kotatsu.parsers.util.parseFailed
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
@MangaSourceParser("MANHWARAW", "Manhwa Raw", "", ContentType.HENTAI) @MangaSourceParser("MANHWARAW", "ManhwaRaw", "", ContentType.HENTAI)
internal class ManhwaRaw(context: MangaLoaderContext) : internal class ManhwaRaw(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANHWARAW, "manhwa-raw.com", 10) { MadaraParser(context, MangaSource.MANHWARAW, "manhwa-raw.com", 10) {
override val datePattern = "MM/dd" override val datePattern = "MM/dd"

@ -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

@ -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
import java.util.Locale import java.util.Locale
@MangaSourceParser("AKUMANGA", "Aku Manga", "ar") @MangaSourceParser("AKUMANGA", "AkuManga", "ar")
internal class AkuManga(context: MangaLoaderContext) : internal class AkuManga(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.AKUMANGA, "akumanga.com") { MadaraParser(context, MangaSource.AKUMANGA, "akumanga.com") {
override val sourceLocale: Locale = Locale.ENGLISH override val sourceLocale: Locale = Locale.ENGLISH

@ -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("ARABTOONS", "Arab Toons", "ar", ContentType.HENTAI) @MangaSourceParser("ARABTOONS", "ArabToons", "ar", ContentType.HENTAI)
internal class ArabToons(context: MangaLoaderContext) : internal class ArabToons(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.ARABTOONS, "arabtoons.net") { MadaraParser(context, MangaSource.ARABTOONS, "arabtoons.net") {
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("AZORANOV", "Azora Nov", "ar") @MangaSourceParser("AZORANOV", "AzoraNov", "ar")
internal class Azoranov(context: MangaLoaderContext) : internal class Azoranov(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.AZORANOV, "azoranov.com", pageSize = 10) { MadaraParser(context, MangaSource.AZORANOV, "azoranov.com", pageSize = 10) {
override val tagPrefix = "series-genre/" override val tagPrefix = "series-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("COMICARAB", "Comic Arab", "ar") @MangaSourceParser("COMICARAB", "ComicArab", "ar")
internal class ComicArab(context: MangaLoaderContext) : internal class ComicArab(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.COMICARAB, "comicarab.com", pageSize = 24) { MadaraParser(context, MangaSource.COMICARAB, "comicarab.com", pageSize = 24) {
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("FALCONMANGA", "Falcon Manga", "ar") @MangaSourceParser("FALCONMANGA", "FalconManga", "ar")
internal class FalconManga(context: MangaLoaderContext) : internal class FalconManga(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.FALCONMANGA, "falconmanga.com") { MadaraParser(context, MangaSource.FALCONMANGA, "falconmanga.com") {
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("GATEMANGA", "Gate Manga", "ar") @MangaSourceParser("GATEMANGA", "GateManga", "ar")
internal class GateManga(context: MangaLoaderContext) : internal class GateManga(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.GATEMANGA, "gatemanga.com") { MadaraParser(context, MangaSource.GATEMANGA, "gatemanga.com") {
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,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("MANGALEKS", "Manga Leks", "ar") @MangaSourceParser("MANGALEKS", "MangaLeks", "ar")
internal class MangaLeks(context: MangaLoaderContext) : internal class MangaLeks(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGALEKS, "mangaleks.com") { MadaraParser(context, MangaSource.MANGALEKS, "mangaleks.com") {
override val datePattern = "yyyy/MM/dd" override val datePattern = "yyyy/MM/dd"

@ -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("MANGALIKE", "Manga Like", "ar") @MangaSourceParser("MANGALIKE", "MangaLike", "ar")
internal class MangaLike(context: MangaLoaderContext) : internal class MangaLike(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGALIKE, "manga-like.net", pageSize = 10) MadaraParser(context, MangaSource.MANGALIKE, "manga-like.net", 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("MANGALIONZ", "Manga Lionz", "ar") @MangaSourceParser("MANGALIONZ", "MangaLionz", "ar")
internal class MangaLionz(context: MangaLoaderContext) : internal class MangaLionz(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGALIONZ, "mangalionz.org", pageSize = 10) MadaraParser(context, MangaSource.MANGALIONZ, "mangalionz.org", 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("MANGAROSE", "Manga Rose", "ar") @MangaSourceParser("MANGAROSE", "MangaRose", "ar")
internal class MangaRose(context: MangaLoaderContext) : internal class MangaRose(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGAROSE, "mangarose.net", pageSize = 20) MadaraParser(context, MangaSource.MANGAROSE, "mangarose.net", pageSize = 20)

@ -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("MANGASTARZ", "Manga Starz", "ar") @MangaSourceParser("MANGASTARZ", "MangaStarz", "ar")
internal class MangaStarz(context: MangaLoaderContext) : internal class MangaStarz(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGASTARZ, "mangastarz.org", pageSize = 10) { MadaraParser(context, MangaSource.MANGASTARZ, "mangastarz.org", pageSize = 10) {
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("MANGATIME", "Manga Time", "ar") @MangaSourceParser("MANGATIME", "MangaTime", "ar")
internal class MangaTime(context: MangaLoaderContext) : internal class MangaTime(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGATIME, "mangatime.co") { MadaraParser(context, MangaSource.MANGATIME, "mangatime.co") {
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("MANGALINK_AR", "Manga Link", "ar") @MangaSourceParser("MANGALINK_AR", "MangaLink", "ar")
internal class MangalinkParser(context: MangaLoaderContext) : internal class MangalinkParser(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGALINK_AR, "manga-link.org", pageSize = 10) { MadaraParser(context, MangaSource.MANGALINK_AR, "manga-link.org", pageSize = 10) {
override val listUrl = "readcomics/" override val listUrl = "readcomics/"

@ -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("MANGARBIC", "Manga Arabic", "ar") @MangaSourceParser("MANGARBIC", "MangaArabic", "ar")
internal class Mangarbic(context: MangaLoaderContext) : internal class Mangarbic(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGARBIC, "mangarabic.com") { MadaraParser(context, MangaSource.MANGARBIC, "mangarabic.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("MANGASPARK", "Manga Spark", "ar") @MangaSourceParser("MANGASPARK", "MangaSpark", "ar")
internal class Mangaspark(context: MangaLoaderContext) : internal class Mangaspark(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGASPARK, "mangaspark.org", pageSize = 10) { MadaraParser(context, MangaSource.MANGASPARK, "mangaspark.org", pageSize = 10) {
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("NOVELSTOWN", "Novels Town", "ar") @MangaSourceParser("NOVELSTOWN", "NovelsTown", "ar")
internal class Novelstown(context: MangaLoaderContext) : internal class Novelstown(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.NOVELSTOWN, "novelstown.com") { MadaraParser(context, MangaSource.NOVELSTOWN, "novelstown.com") {
override val datePattern = "d MMMM، yyyy" override val datePattern = "d MMMM، 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("PEWPIECE", "Pew Piece", "ar") @MangaSourceParser("PEWPIECE", "PewPiece", "ar")
internal class PewPiece(context: MangaLoaderContext) : internal class PewPiece(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.PEWPIECE, "pewpiece.com") MadaraParser(context, MangaSource.PEWPIECE, "pewpiece.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("WEBTOONEMPIRE", "Webtoon Empire", "ar") @MangaSourceParser("WEBTOONEMPIRE", "WebtoonEmpire", "ar")
internal class WebtoonEmpire(context: MangaLoaderContext) : internal class WebtoonEmpire(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.WEBTOONEMPIRE, "webtoonsempireron.com", pageSize = 10) { MadaraParser(context, MangaSource.WEBTOONEMPIRE, "webtoonsempireron.com", pageSize = 10) {
override val listUrl = "webtoon/" override val listUrl = "webtoon/"

@ -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("ADULT_WEBTOON", "Adult Webtoon", "en", ContentType.HENTAI) @MangaSourceParser("ADULT_WEBTOON", "AdultWebtoon", "en", ContentType.HENTAI)
internal class AdultWebtoon(context: MangaLoaderContext) : internal class AdultWebtoon(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.ADULT_WEBTOON, "adultwebtoon.com") { MadaraParser(context, MangaSource.ADULT_WEBTOON, "adultwebtoon.com") {
override val tagPrefix = "adult-webtoon-genre/" override val tagPrefix = "adult-webtoon-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("ALLPORN_COMIC", "All Porn Comic", "en", ContentType.HENTAI) @MangaSourceParser("ALLPORN_COMIC", "AllPornComic", "en", ContentType.HENTAI)
internal class AllPornComic(context: MangaLoaderContext) : internal class AllPornComic(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.ALLPORN_COMIC, "allporncomic.com", pageSize = 24) { MadaraParser(context, MangaSource.ALLPORN_COMIC, "allporncomic.com", pageSize = 24) {
override val tagPrefix = "porncomic-genre/" override val tagPrefix = "porncomic-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("ANSHSCANS", "Ansh Scans", "en") @MangaSourceParser("ANSHSCANS", "AnshScans", "en")
internal class AnshScans(context: MangaLoaderContext) : internal class AnshScans(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.ANSHSCANS, "anshscans.org", 10) { MadaraParser(context, MangaSource.ANSHSCANS, "anshscans.org", 10) {
override val tagPrefix = "genre/" override val tagPrefix = "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("AQUAMANGA", "Aqua Manga", "en") @MangaSourceParser("AQUAMANGA", "AquaManga", "en")
internal class AquaManga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.AQUAMANGA, "aquamanga.com") { internal class AquaManga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.AQUAMANGA, "aquamanga.com") {
override val datePattern = "MMMM dd, yyyy" override val datePattern = "MMMM dd, yyyy"
override val withoutAjax = true override val withoutAjax = 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("ARCANESCANS", "Arcane Scans", "en") @MangaSourceParser("ARCANESCANS", "ArcaneScans", "en")
internal class ArcaneScans(context: MangaLoaderContext) : internal class ArcaneScans(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.ARCANESCANS, "arcanescans.com", 10) MadaraParser(context, MangaSource.ARCANESCANS, "arcanescans.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("ASTRALLIBRARY", "Astral Library", "en") @MangaSourceParser("ASTRALLIBRARY", "AstralLibrary", "en")
internal class Astrallibrary(context: MangaLoaderContext) : internal class Astrallibrary(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.ASTRALLIBRARY, "astrallibrary.net", 18) { MadaraParser(context, MangaSource.ASTRALLIBRARY, "astrallibrary.net", 18) {
override val datePattern = "dd MMM" override val datePattern = "dd MMM"

@ -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,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("BANANA_MANGA", "Banana Manga", "en") @MangaSourceParser("BANANA_MANGA", "BananaManga", "en")
internal class BananaManga(context: MangaLoaderContext) : internal class BananaManga(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.BANANA_MANGA, "bananamanga.net", 20) MadaraParser(context, MangaSource.BANANA_MANGA, "bananamanga.net", 20)

@ -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

@ -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("BIBIMANGA", "Bibi Manga", "en", ContentType.HENTAI) @MangaSourceParser("BIBIMANGA", "BibiManga", "en", ContentType.HENTAI)
internal class BibiManga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.BIBIMANGA, "bibimanga.com") { internal class BibiManga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.BIBIMANGA, "bibimanga.com") {
override val datePattern = "MMMM dd, yyyy" override val datePattern = "MMMM 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("BLOG_MANGA", "Blog Manga", "en") @MangaSourceParser("BLOG_MANGA", "BlogManga", "en")
internal class BlogManga(context: MangaLoaderContext) : internal class BlogManga(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.BLOG_MANGA, "blogmanga.net") { MadaraParser(context, MangaSource.BLOG_MANGA, "blogmanga.net") {
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("BOYS_LOVE", "Boys Love", "en", ContentType.HENTAI) @MangaSourceParser("BOYS_LOVE", "BoysLove", "en", ContentType.HENTAI)
internal class BoysLove(context: MangaLoaderContext) : internal class BoysLove(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.BOYS_LOVE, "boyslove.me", 20) { MadaraParser(context, MangaSource.BOYS_LOVE, "boyslove.me", 20) {
override val tagPrefix = "boyslove-genre/" override val tagPrefix = "boyslove-genre/"

@ -5,5 +5,5 @@ 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("CM_READER", "Cm Reader", "en") @MangaSourceParser("CM_READER", "CmReader", "en")
internal class CmReader(context: MangaLoaderContext) : MadaraParser(context, MangaSource.CM_READER, "cmreader.info") internal class CmReader(context: MangaLoaderContext) : MadaraParser(context, MangaSource.CM_READER, "cmreader.info")

@ -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("COFFEE_MANGA", "Coffee Manga", "en") @MangaSourceParser("COFFEE_MANGA", "CoffeeManga", "en")
internal class CoffeeManga(context: MangaLoaderContext) : internal class CoffeeManga(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.COFFEE_MANGA, "coffeemanga.io") MadaraParser(context, MangaSource.COFFEE_MANGA, "coffeemanga.io")

@ -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/"

@ -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("COLORED_MANGA", "Colored Manga", "en") @MangaSourceParser("COLORED_MANGA", "ColoredManga", "en")
internal class ColoredManga(context: MangaLoaderContext) : internal class ColoredManga(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.COLORED_MANGA, "coloredmanga.com") { MadaraParser(context, MangaSource.COLORED_MANGA, "coloredmanga.com") {
override val datePattern = "dd-MMM" override val datePattern = "dd-MMM"

@ -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("COMICSCANS", "Comic Scans", "en") @MangaSourceParser("COMICSCANS", "ComicScans", "en")
internal class ComicScans(context: MangaLoaderContext) : internal class ComicScans(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.COMICSCANS, "www.comicscans.org") MadaraParser(context, MangaSource.COMICSCANS, "www.comicscans.org")

@ -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("COMICSVALLEY", "Comics Valley", "en", ContentType.HENTAI) @MangaSourceParser("COMICSVALLEY", "ComicsValley", "en", ContentType.HENTAI)
internal class ComicsValley(context: MangaLoaderContext) : internal class ComicsValley(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.COMICSVALLEY, "comicsvalley.com") { MadaraParser(context, MangaSource.COMICSVALLEY, "comicsvalley.com") {
override val listUrl = "adult-comics/" override val listUrl = "adult-comics/"

@ -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("CREEPYSCANS", "Creepy Scans", "en") @MangaSourceParser("CREEPYSCANS", "CreepyScans", "en")
internal class CreepyScans(context: MangaLoaderContext) : internal class CreepyScans(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.CREEPYSCANS, "creepyscans.com") { MadaraParser(context, MangaSource.CREEPYSCANS, "creepyscans.com") {
override val stylePage = "" override val stylePage = ""

@ -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("DARK_SCANS", "Dark Scans", "en") @MangaSourceParser("DARK_SCANS", "DarkScans", "en")
internal class DarkScans(context: MangaLoaderContext) : internal class DarkScans(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.DARK_SCANS, "darkscans.com", 18) { MadaraParser(context, MangaSource.DARK_SCANS, "darkscans.com", 18) {
override val listUrl = "mangas/" override val listUrl = "mangas/"

@ -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("DECADENCESCANS", "Decadence Scans", "en", ContentType.HENTAI) @MangaSourceParser("DECADENCESCANS", "DecadenceScans", "en", ContentType.HENTAI)
internal class DecadenceScans(context: MangaLoaderContext) : internal class DecadenceScans(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.DECADENCESCANS, "reader.decadencescans.com", 10) MadaraParser(context, MangaSource.DECADENCESCANS, "reader.decadencescans.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("DRAGONTEA", "Dragon Tea", "en") @MangaSourceParser("DRAGONTEA", "DragonTea", "en")
internal class DragonTea(context: MangaLoaderContext) : internal class DragonTea(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.DRAGONTEA, "dragontea.ink") { MadaraParser(context, MangaSource.DRAGONTEA, "dragontea.ink") {
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("DRAKESCANS", "Drake Scans", "en") @MangaSourceParser("DRAKESCANS", "DrakeScans", "en")
internal class DrakeScans(context: MangaLoaderContext) : internal class DrakeScans(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.DRAKESCANS, "drakescans.com", 10) { MadaraParser(context, MangaSource.DRAKESCANS, "drakescans.com", 10) {
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("DUCKMANGA", "Duck Manga", "en", ContentType.HENTAI) @MangaSourceParser("DUCKMANGA", "DuckManga", "en", ContentType.HENTAI)
internal class DuckManga(context: MangaLoaderContext) : internal class DuckManga(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.DUCKMANGA, "duckmanga.com", 20) MadaraParser(context, MangaSource.DUCKMANGA, "duckmanga.com", 20)

@ -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("ELITEMANGA", "Elite Manga", "en") @MangaSourceParser("ELITEMANGA", "EliteManga", "en")
internal class EliteManga(context: MangaLoaderContext) : internal class EliteManga(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.ELITEMANGA, "www.elitemanga.org") MadaraParser(context, MangaSource.ELITEMANGA, "www.elitemanga.org")

@ -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("FACTMANGA", "Fact Manga", "en") @MangaSourceParser("FACTMANGA", "FactManga", "en")
internal class FactManga(context: MangaLoaderContext) : internal class FactManga(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.FACTMANGA, "factmanga.com") MadaraParser(context, MangaSource.FACTMANGA, "factmanga.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("FREECOMICONLINE", "Free Comic Online", "en", ContentType.HENTAI) @MangaSourceParser("FREECOMICONLINE", "FreeComic Online", "en", ContentType.HENTAI)
internal class FreeComicOnline(context: MangaLoaderContext) : internal class FreeComicOnline(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.FREECOMICONLINE, "freecomiconline.me") { MadaraParser(context, MangaSource.FREECOMICONLINE, "freecomiconline.me") {
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("FREEMANGA", "Free Manga", "en") @MangaSourceParser("FREEMANGA", "FreeManga", "en")
internal class FreeManga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.FREEMANGA, "freemanga.me") { internal class FreeManga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.FREEMANGA, "freemanga.me") {
override val datePattern = "MMMM dd, yyyy" override val datePattern = "MMMM 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("FREEMANGATOP", "Free Manga Top", "en") @MangaSourceParser("FREEMANGATOP", "FreeManga Top", "en")
internal class FreeMangaTop(context: MangaLoaderContext) : internal class FreeMangaTop(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.FREEMANGATOP, "freemangatop.com") { MadaraParser(context, MangaSource.FREEMANGATOP, "freemangatop.com") {
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("FREEWEBTOONCOINS", "Free Webtoon Coins", "en") @MangaSourceParser("FREEWEBTOONCOINS", "FreeWebtoonCoins", "en")
internal class FreeWebtoonCoins(context: MangaLoaderContext) : internal class FreeWebtoonCoins(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.FREEWEBTOONCOINS, "freewebtooncoins.com") { MadaraParser(context, MangaSource.FREEWEBTOONCOINS, "freewebtooncoins.com") {
override val tagPrefix = "webtoon-genre/" override val tagPrefix = "webtoon-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("GDSCANS", "Gd Scans", "en") @MangaSourceParser("GDSCANS", "GdScans", "en")
internal class GdScans(context: MangaLoaderContext) : internal class GdScans(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.GDSCANS, "gdscans.com", 10) { MadaraParser(context, MangaSource.GDSCANS, "gdscans.com", 10) {
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("GLMANGA", "Gl Manga", "en") @MangaSourceParser("GLMANGA", "GlManga", "en")
internal class GlManga(context: MangaLoaderContext) : internal class GlManga(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.GLMANGA, "glmanga.com") MadaraParser(context, MangaSource.GLMANGA, "glmanga.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("GOODGIRLS", "Good Girls", "en") @MangaSourceParser("GOODGIRLS", "GoodGirls", "en")
internal class GoodGirls(context: MangaLoaderContext) : internal class GoodGirls(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.GOODGIRLS, "goodgirls.moe", 10) { MadaraParser(context, MangaSource.GOODGIRLS, "goodgirls.moe", 10) {
override val selectDesc = "div.post-content_item:contains(Synopsis) div.summary-content" override val selectDesc = "div.post-content_item:contains(Synopsis) div.summary-content"

@ -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("GOURMETSCANS", "Gourmet Scans", "en") @MangaSourceParser("GOURMETSCANS", "GourmetScans", "en")
internal class GourmetScans(context: MangaLoaderContext) : internal class GourmetScans(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.GOURMETSCANS, "gourmetscans.net") { MadaraParser(context, MangaSource.GOURMETSCANS, "gourmetscans.net") {
override val listUrl = "project/" override val listUrl = "project/"

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

Loading…
Cancel
Save