@@ -5,6 +5,7 @@ import okhttp3.Interceptor
|
||||
import okhttp3.Response
|
||||
import org.json.JSONArray
|
||||
import org.json.JSONObject
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.PagedMangaParser
|
||||
@@ -18,11 +19,12 @@ import org.koitharu.kotatsu.parsers.util.json.toJSONList
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
|
||||
@MangaSourceParser("NINENINENINEHENTAI", "999Hentai", type = ContentType.HENTAI)
|
||||
@Broken
|
||||
@MangaSourceParser("NINENINENINEHENTAI", "AnimeH", type = ContentType.HENTAI)
|
||||
internal class NineNineNineHentaiParser(context: MangaLoaderContext) :
|
||||
PagedMangaParser(context, MangaParserSource.NINENINENINEHENTAI, size), Interceptor {
|
||||
|
||||
override val configKeyDomain = ConfigKey.Domain("999hentai.net")
|
||||
override val configKeyDomain = ConfigKey.Domain("animeh.to")
|
||||
|
||||
override val availableSortOrders: EnumSet<SortOrder> = EnumSet.of(
|
||||
SortOrder.POPULARITY,
|
||||
@@ -377,7 +379,7 @@ internal class NineNineNineHentaiParser(context: MangaLoaderContext) :
|
||||
}
|
||||
|
||||
private suspend fun apiCall(query: String): JSONObject {
|
||||
return webClient.graphQLQuery("https://hapi.$domain/api", query).getJSONObject("data")
|
||||
return webClient.graphQLQuery("https://api.$domain/api", query).getJSONObject("data")
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
@@ -20,7 +20,7 @@ internal class TeamXNovel(context: MangaLoaderContext) : PagedMangaParser(contex
|
||||
override val availableStates: Set<MangaState> =
|
||||
EnumSet.of(MangaState.ONGOING, MangaState.FINISHED, MangaState.ABANDONED)
|
||||
|
||||
override val configKeyDomain = ConfigKey.Domain("teamxnovel.com")
|
||||
override val configKeyDomain = ConfigKey.Domain("teamoney.site")
|
||||
override val isMultipleTagsSupported = false
|
||||
|
||||
override suspend fun getListPage(page: Int, filter: MangaListFilter?): List<Manga> {
|
||||
|
||||
@@ -17,7 +17,7 @@ internal class MangaGeko(context: MangaLoaderContext) : PagedMangaParser(context
|
||||
override val availableSortOrders: Set<SortOrder> =
|
||||
EnumSet.of(SortOrder.POPULARITY, SortOrder.UPDATED, SortOrder.NEWEST)
|
||||
|
||||
override val configKeyDomain = ConfigKey.Domain("www.mgeko.com", "www.mangageko.com")
|
||||
override val configKeyDomain = ConfigKey.Domain("www.mgeko.cc", "www.mgeko.com", "www.mangageko.com")
|
||||
|
||||
override val isMultipleTagsSupported = false
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.koitharu.kotatsu.parsers.site.en
|
||||
import kotlinx.coroutines.coroutineScope
|
||||
import okhttp3.Headers
|
||||
import org.jsoup.nodes.Document
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.PagedMangaParser
|
||||
@@ -14,6 +15,7 @@ import org.koitharu.kotatsu.parsers.util.json.mapJSON
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("MANGAOWL", "MangaOwl.to", "en")
|
||||
internal class Mangaowl(context: MangaLoaderContext) :
|
||||
PagedMangaParser(context, MangaParserSource.MANGAOWL, pageSize = 24) {
|
||||
|
||||
@@ -8,7 +8,7 @@ import org.koitharu.kotatsu.parsers.util.*
|
||||
|
||||
@MangaSourceParser("OLIMPOSCANS", "OlimpoScans", "es")
|
||||
internal class OlimpoScans(context: MangaLoaderContext) :
|
||||
FmreaderParser(context, MangaParserSource.OLIMPOSCANS, "olimposcans.com") {
|
||||
FmreaderParser(context, MangaParserSource.OLIMPOSCANS, "leerolimpo.com") {
|
||||
|
||||
override val selectState = "ul.manga-info li:contains(Estado) a"
|
||||
override val selectAlt = "ul.manga-info li:contains(Otros nombres)"
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.foolslide.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.foolslide.FoolSlideParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("READER_EVILFLOWERS", "Evil Flowers", "en")
|
||||
internal class ReaderEvilflowers(context: MangaLoaderContext) :
|
||||
FoolSlideParser(context, MangaParserSource.READER_EVILFLOWERS, "reader.evilflowers.com")
|
||||
|
||||
@@ -7,4 +7,4 @@ import org.koitharu.kotatsu.parsers.site.keyoapp.KeyoappParser
|
||||
|
||||
@MangaSourceParser("STARBOUNDSCANS", "StarboundScans", "fr")
|
||||
internal class StarboundScans(context: MangaLoaderContext) :
|
||||
KeyoappParser(context, MangaParserSource.STARBOUNDSCANS, "starboundscans.org")
|
||||
KeyoappParser(context, MangaParserSource.STARBOUNDSCANS, "starboundscans.com")
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.all
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.ContentType
|
||||
@@ -7,6 +8,7 @@ import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
import java.util.*
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("MANGATOP", "MangaTop", "", ContentType.HENTAI)
|
||||
internal class MangaTop(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.MANGATOP, "mangatop.site") {
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.ar
|
||||
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@MangaSourceParser("CROWSCANS", "Hadess", "ar")
|
||||
internal class CrowScans(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.CROWSCANS, "www.hadess.xyz") {
|
||||
override val datePattern = "dd MMMM، yyyy"
|
||||
}
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.ar
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("MANGASPARK", "Manga-Spark", "ar")
|
||||
internal class Mangaspark(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.MANGASPARK, "manga-spark.com", pageSize = 10) {
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.ar
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("SHADOWXMANGA", "ShadowXManga", "ar")
|
||||
internal class ShadowxManga(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.SHADOWXMANGA, "www.shadowxmanga.com") {
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.ar
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("WEBTOONEMPIRE", "WebtoonEmpire", "ar")
|
||||
internal class WebtoonEmpire(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.WEBTOONEMPIRE, "webtoonsempireron.com", pageSize = 10) {
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.de
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("MANGALESEN", "MangaLesen", "de")
|
||||
internal class MangaLesen(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.MANGALESEN, "mangalesen.net")
|
||||
|
||||
@@ -7,4 +7,7 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@MangaSourceParser("ASURASCANS_US", "AsuraScans.us", "en")
|
||||
internal class AsuraScansUs(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.ASURASCANS_US, "asurascans.us")
|
||||
MadaraParser(context, MangaParserSource.ASURASCANS_US, "asurascans.us") {
|
||||
override val listUrl = "comics/"
|
||||
override val tagPrefix = "read-en-us-genre/"
|
||||
}
|
||||
|
||||
@@ -7,6 +7,6 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@MangaSourceParser("COLORED_MANGA", "ColoredManga", "en")
|
||||
internal class ColoredManga(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.COLORED_MANGA, "coloredmanga.com") {
|
||||
MadaraParser(context, MangaParserSource.COLORED_MANGA, "coloredmanga.net") {
|
||||
override val datePattern = "dd-MMM"
|
||||
}
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.ContentType
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("DUCKMANGA", "DuckManga", "en", ContentType.HENTAI)
|
||||
internal class DuckManga(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.DUCKMANGA, "duckmanga.com", 20)
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("FREEWEBTOONCOINS", "FreeWebtoonCoins", "en")
|
||||
internal class FreeWebtoonCoins(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.FREEWEBTOONCOINS, "freewebtooncoins.com") {
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.ContentType
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("HIPERDEX", "HiperDex", "en", ContentType.HENTAI)
|
||||
internal class HiperDex(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.HIPERDEX, "hiperdex.com", 36)
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.ContentType
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("LOLICONMOBI", "LoliconMobi", "en", ContentType.HENTAI)
|
||||
internal class LoliconMobi(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.LOLICONMOBI, "lolicon.mobi") {
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("LUFFYMANGA", "LuffyManga", "en")
|
||||
internal class LuffyManga(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.LUFFYMANGA, "luffymanga.com", 10)
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("MANGA1001", "Manga1001", "en")
|
||||
internal class Manga1001(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.MANGA1001, "manga-1001.com", 10)
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.ContentType
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("MANGA1K", "Manga1k", "en", ContentType.HENTAI)
|
||||
internal class Manga1k(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.MANGA1K, "manga1k.com", 20) {
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("MANGA68", "Manga68", "en")
|
||||
internal class Manga68(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.MANGA68, "manga68.com") {
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("MANGAACTION", "MangaAction", "en")
|
||||
internal class MangaAction(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.MANGAACTION, "mangaaction.com")
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("MANGABOB", "MangaBob", "en")
|
||||
internal class MangaBob(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.MANGABOB, "mangabob.com") {
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("MANGACULTIVATOR", "MangaCultivator", "en")
|
||||
internal class MangaCultivator(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.MANGACULTIVATOR, "mangacultivator.com", 10)
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("MANGAOWLBLOG", "MangaOwlnet.com", "en")
|
||||
internal class MangaOwlBlog(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.MANGAOWLBLOG, "mangaowlnet.com")
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.ContentType
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("MANGAOWL_US", "MangaOwlYaoi", "en", ContentType.HENTAI)
|
||||
internal class MangaOwlUs(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.MANGAOWL_US, "mangaowlyaoi.com")
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("MANGARUBY", "MangaRuby", "en")
|
||||
internal class MangaRuby(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.MANGARUBY, "mangaruby.com", 10)
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.ContentType
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("MANGARYU", "MangaRyu", "en", ContentType.HENTAI)
|
||||
internal class MangaRyu(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.MANGARYU, "mangaryu.com", 10)
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.ContentType
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("MANGAOWL_ONE", "MangaOwl.one", "en", ContentType.HENTAI)
|
||||
internal class MangaowlOne(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.MANGAOWL_ONE, "mangaowl.one") {
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("MANGASY", "Mangasy", "en")
|
||||
internal class Mangasy(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.MANGASY, "www.mangasy.com") {
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("MANGAUS", "Mangaus", "en")
|
||||
internal class Mangaus(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.MANGAUS, "mangaus.xyz") {
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("MANHUASY", "ManhuaSy", "en")
|
||||
internal class Manhuasy(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.MANHUASY, "www.manhuasy.com") {
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("MANHUAUSS", "Manhuauss", "en")
|
||||
internal class Manhuauss(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.MANHUAUSS, "manhuauss.com") {
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.ContentType
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("MANHWA18APP", "Manhwa18.app", "en", ContentType.HENTAI)
|
||||
internal class Manhwa18App(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.MANHWA18APP, "manhwa18.app") {
|
||||
|
||||
@@ -1,14 +1,113 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import kotlinx.coroutines.async
|
||||
import kotlinx.coroutines.coroutineScope
|
||||
import org.jsoup.nodes.Document
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.ContentType
|
||||
import org.koitharu.kotatsu.parsers.model.Manga
|
||||
import org.koitharu.kotatsu.parsers.model.MangaChapter
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.model.MangaState
|
||||
import org.koitharu.kotatsu.parsers.model.MangaTag
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
import org.koitharu.kotatsu.parsers.util.*
|
||||
import java.text.SimpleDateFormat
|
||||
|
||||
@MangaSourceParser("MANHWAHENTAI", "ManhwaHentai", "en", ContentType.HENTAI)
|
||||
internal class ManhwaHentai(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.MANHWAHENTAI, "manhwahentai.me", 20) {
|
||||
override val tagPrefix = "webtoon-genre/"
|
||||
override val listUrl = "webtoon/"
|
||||
override val withoutAjax = true
|
||||
override val postReq = true
|
||||
|
||||
override suspend fun getDetails(manga: Manga): Manga = coroutineScope {
|
||||
val fullUrl = manga.url.toAbsoluteUrl(domain)
|
||||
val doc = webClient.httpGet(fullUrl).parseHtml()
|
||||
val body = doc.body()
|
||||
val chaptersDeferred = async { loadChapters(manga.url, doc) }
|
||||
val desc = body.select(selectDesc).html()
|
||||
val stateDiv = if (selectState.isEmpty()) {
|
||||
(body.selectFirst("div.post-content_item:contains(Status)")
|
||||
?: body.selectFirst("div.post-content_item:contains(Statut)")
|
||||
?: body.selectFirst("div.post-content_item:contains(État)")
|
||||
?: body.selectFirst("div.post-content_item:contains(حالة العمل)")
|
||||
?: body.selectFirst("div.post-content_item:contains(Estado)")
|
||||
?: body.selectFirst("div.post-content_item:contains(สถานะ)")
|
||||
?: body.selectFirst("div.post-content_item:contains(Stato)")
|
||||
?: body.selectFirst("div.post-content_item:contains(Durum)")
|
||||
?: body.selectFirst("div.post-content_item:contains(Statüsü)")
|
||||
?: body.selectFirst("div.post-content_item:contains(Статус)")
|
||||
?: body.selectFirst("div.post-content_item:contains(状态)")
|
||||
?: body.selectFirst("div.post-content_item:contains(الحالة)"))?.selectLast("div.summary-content")
|
||||
} else {
|
||||
body.selectFirst(selectState)
|
||||
}
|
||||
|
||||
|
||||
val state = stateDiv?.let {
|
||||
when (it.text()) {
|
||||
in ongoing -> MangaState.ONGOING
|
||||
in finished -> MangaState.FINISHED
|
||||
in abandoned -> MangaState.ABANDONED
|
||||
in paused -> MangaState.PAUSED
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
|
||||
val alt =
|
||||
doc.body().select(".post-content_item:contains(Alt) .summary-content").firstOrNull()?.tableValue()?.text()
|
||||
?.trim() ?: doc.body().select(".post-content_item:contains(Nomes alternativos: ) .summary-content")
|
||||
.firstOrNull()?.tableValue()?.text()?.trim()
|
||||
|
||||
manga.copy(
|
||||
tags = doc.body().select(selectGenre).mapNotNullToSet { a ->
|
||||
MangaTag(
|
||||
key = a.attr("href").removeSuffix("/").substringAfterLast('/'),
|
||||
title = a.text().toTitleCase(),
|
||||
source = source,
|
||||
)
|
||||
},
|
||||
description = desc,
|
||||
altTitle = alt,
|
||||
state = state,
|
||||
chapters = chaptersDeferred.await(),
|
||||
)
|
||||
}
|
||||
|
||||
override suspend fun loadChapters(mangaUrl: String, document: Document): List<MangaChapter> {
|
||||
val doc = if (postReq) {
|
||||
val mangaId = document.select("div#manga-chapters-holder").attr("data-id")
|
||||
val url = "https://$domain/wp-admin/admin-ajax.php"
|
||||
val postData = "action=ajax_chap&post_id=$mangaId"
|
||||
webClient.httpPost(url, postData).parseHtml()
|
||||
} else {
|
||||
val url = mangaUrl.toAbsoluteUrl(domain).removeSuffix('/') + "/ajax/chapters/"
|
||||
webClient.httpPost(url, emptyMap()).parseHtml()
|
||||
}
|
||||
val dateFormat = SimpleDateFormat(datePattern, sourceLocale)
|
||||
return doc.select(selectChapter).mapChapters(reversed = true) { i, li ->
|
||||
val a = li.selectFirst("a")
|
||||
val href = a?.attrAsRelativeUrlOrNull("href") ?: li.parseFailed("Link is missing")
|
||||
val link = href + stylePage
|
||||
val dateText = li.selectFirst("a.c-new-tag")?.attr("title") ?: li.selectFirst(selectDate)?.text()
|
||||
val name = a.selectFirst("p")?.text() ?: a.ownText()
|
||||
MangaChapter(
|
||||
id = generateUid(href),
|
||||
url = link,
|
||||
name = name,
|
||||
number = i + 1f,
|
||||
volume = 0,
|
||||
branch = null,
|
||||
uploadDate = parseChapterDate(
|
||||
dateFormat,
|
||||
dateText,
|
||||
),
|
||||
scanlator = null,
|
||||
source = source,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,4 +7,4 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@MangaSourceParser("NITROMANGA", "NitroManga", "en")
|
||||
internal class NitroManga(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.NITROMANGA, "nitromanga.com", pageSize = 18)
|
||||
MadaraParser(context, MangaParserSource.NITROMANGA, "nitroscans.net", pageSize = 18)
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("NVMANGA", "NvManga", "en")
|
||||
internal class NvManga(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.NVMANGA, "nvmanga.com") {
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("ONLYMANHWA", "OnlyManhwa", "en")
|
||||
internal class OnlyManhwa(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.ONLYMANHWA, "onlymanhwa.org") {
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("PIANMANGA", "PianManga", "en")
|
||||
internal class PianManga(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.PIANMANGA, "pianmanga.me", pageSize = 10) {
|
||||
|
||||
@@ -7,6 +7,6 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@MangaSourceParser("S2MANGA", "S2Manga", "en")
|
||||
internal class S2Manga(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.S2MANGA, "www.s2manga.com") {
|
||||
MadaraParser(context, MangaParserSource.S2MANGA, "s2manga.com") {
|
||||
override val datePattern = "MMMM dd, yyyy"
|
||||
}
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("THEGUILDSCANS", "TheGuildScans", "en")
|
||||
internal class Theguildscans(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.THEGUILDSCANS, "theguildscans.com") {
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("WEBTOON", "Webtoon.uk", "en")
|
||||
internal class Webtoon(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.WEBTOON, "webtoon.uk", 20) {
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.ContentType
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("YAOIMOBI", "Yaoi.Mobi", "en", ContentType.HENTAI)
|
||||
internal class YaoiMobi(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.YAOIMOBI, "yaoi.mobi") {
|
||||
|
||||
@@ -7,4 +7,4 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@MangaSourceParser("APOLL_COMICS", "ApollComics", "es")
|
||||
internal class ApollComics(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.APOLL_COMICS, "apollcomics.com", 10)
|
||||
MadaraParser(context, MangaParserSource.APOLL_COMICS, "apollcomics.es", 10)
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.es
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("ATLANTISSCAN", "AtlantisScan", "es")
|
||||
internal class AtlantisScan(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.ATLANTISSCAN, "scansatlanticos.com", pageSize = 50) {
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.es
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("COPYPASTESCAN", "CopyPasteScan", "es")
|
||||
internal class Copypastescan(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.COPYPASTESCAN, "copypastescan.xyz", 10) {
|
||||
|
||||
@@ -7,4 +7,4 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@MangaSourceParser("EMPERORSCAN", "EmperorScan", "es")
|
||||
internal class EmperorScan(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.EMPERORSCAN, "emperorscan.com")
|
||||
MadaraParser(context, MangaParserSource.EMPERORSCAN, "emperor-scan.com")
|
||||
|
||||
@@ -5,9 +5,9 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@MangaSourceParser("KNIGHTNOSCANLATION", "Knightno Scanlation", "es")
|
||||
@MangaSourceParser("KNIGHTNOSCANLATION", "TwoBlueScans", "es")
|
||||
internal class KnightnoScanlation(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.KNIGHTNOSCANLATION, "knightnoscanlation.com") {
|
||||
MadaraParser(context, MangaParserSource.KNIGHTNOSCANLATION, "kns.twobluescans.com") {
|
||||
override val listUrl = "sr/"
|
||||
override val tagPrefix = "generos/"
|
||||
}
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.es
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("LECTORUNITOON", "LectoruniToon", "es")
|
||||
internal class Lectorunitoon(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.LECTORUNITOON, "lectorunitoon.com", 10) {
|
||||
|
||||
@@ -7,7 +7,7 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@MangaSourceParser("MANGA_CRAB", "MangaCrab", "es")
|
||||
internal class MangaCrab(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.MANGA_CRAB, "httpmangacrab2.com") {
|
||||
MadaraParser(context, MangaParserSource.MANGA_CRAB, "wikicrab.xyz") {
|
||||
override val datePattern = "dd/MM/yyyy"
|
||||
override val tagPrefix = "manga-genero/"
|
||||
override val listUrl = "series/"
|
||||
|
||||
@@ -7,6 +7,7 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@MangaSourceParser("MHSCANS", "MhScans", "es")
|
||||
internal class MhScans(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.MHSCANS, "mhscans.com") {
|
||||
MadaraParser(context, MangaParserSource.MHSCANS, "mh.twobluescans.com") {
|
||||
override val datePattern = "d 'de' MMMMM 'de' yyyy"
|
||||
override val listUrl = "series/"
|
||||
}
|
||||
|
||||
@@ -7,6 +7,6 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@MangaSourceParser("MONARCAMANGA", "MonarcaManga", "es")
|
||||
internal class MonarcaManga(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.MONARCAMANGA, "monarcamanga.com") {
|
||||
MadaraParser(context, MangaParserSource.MONARCAMANGA, "visormonarca.com") {
|
||||
override val tagPrefix = "manga-generos/"
|
||||
}
|
||||
|
||||
@@ -7,6 +7,6 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@MangaSourceParser("SAMURAISCAN", "SamuraiScan", "es")
|
||||
internal class SamuraiScan(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.SAMURAISCAN, "samuraiscan.com", 10) {
|
||||
MadaraParser(context, MangaParserSource.SAMURAISCAN, "samurai.ragnarokscanlation.org", 10) {
|
||||
override val listUrl = "leer/"
|
||||
}
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.id
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.ContentType
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("INDO18H", "Indo18h", "id", ContentType.HENTAI)
|
||||
internal class Indo18h(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.INDO18H, "indo18h.com", 24) {
|
||||
|
||||
@@ -8,7 +8,7 @@ import java.util.*
|
||||
|
||||
@MangaSourceParser("POJOKMANGA", "PojokManga", "id")
|
||||
internal class PojokManga(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.POJOKMANGA, "pojokmanga.id") {
|
||||
MadaraParser(context, MangaParserSource.POJOKMANGA, "pojokmanga.org") {
|
||||
override val tagPrefix = "komik-genre/"
|
||||
override val listUrl = "komik/"
|
||||
override val datePattern = "MMM d, yyyy"
|
||||
|
||||
@@ -8,7 +8,7 @@ import java.util.*
|
||||
|
||||
@MangaSourceParser("SHINIGAMI", "Shinigami", "id")
|
||||
internal class Shinigami(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.SHINIGAMI, "shinigami02.com", 10) {
|
||||
MadaraParser(context, MangaParserSource.SHINIGAMI, "shinigami03.com", 10) {
|
||||
override val tagPrefix = "genre/"
|
||||
override val listUrl = "series/"
|
||||
override val sourceLocale: Locale = Locale.ENGLISH
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.pt
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("CABAREDOWATAME", "DessertScan", "pt")
|
||||
internal class Cabaredowatame(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.CABAREDOWATAME, "cabaredowatame.site", 10) {
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.pt
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("FOXWHITE", "FoxWhite", "pt")
|
||||
internal class FoxWhite(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.FOXWHITE, "foxwhite.com.br")
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.pt
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("MOONWITCHINLOVESCAN", "MoonWitchinLoveScan", "pt")
|
||||
internal class Moonwitchinlovescan(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.MOONWITCHINLOVESCAN, "moonwitchinlovescan.com", 10) {
|
||||
|
||||
@@ -11,7 +11,7 @@ import java.text.SimpleDateFormat
|
||||
|
||||
@MangaSourceParser("NEOX_SCANS", "NeoxScans", "pt")
|
||||
internal class Neoxscans(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.NEOX_SCANS, "nexoscans.net", 18) {
|
||||
MadaraParser(context, MangaParserSource.NEOX_SCANS, "mangalivre.net", 18) {
|
||||
override val datePattern = "dd/MM/yyyy"
|
||||
|
||||
override suspend fun loadChapters(mangaUrl: String, document: Document): List<MangaChapter> {
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.pt
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.ContentType
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("PSUNICORN", "PsUnicorn", "pt", ContentType.HENTAI)
|
||||
internal class Psunicorn(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.PSUNICORN, "psunicorn.com")
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.pt
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("ROGMANGAS", "RogMangas", "pt")
|
||||
internal class RogMangas(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.ROGMANGAS, "rogmangas.com", 51) {
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.th
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("BAKAMAN", "BakaMan", "th")
|
||||
internal class BakaMan(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.BAKAMAN, "bakaman.net", pageSize = 18) {
|
||||
|
||||
@@ -7,7 +7,7 @@ import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@MangaSourceParser("CAT_300", "Cat300", "th", ContentType.HENTAI)
|
||||
internal class Cat300(context: MangaLoaderContext) : MadaraParser(context, MangaParserSource.CAT_300, "cat300.com") {
|
||||
internal class Cat300(context: MangaLoaderContext) : MadaraParser(context, MangaParserSource.CAT_300, "cat300.net") {
|
||||
override val datePattern = "MMMM dd, yyyy"
|
||||
override val withoutAjax = true
|
||||
}
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.tr
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("GHOSTFANSUB", "GhostFansub", "tr")
|
||||
internal class GhostFansub(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.GHOSTFANSUB, "ghostfansub.co", 18)
|
||||
|
||||
@@ -8,6 +8,6 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@MangaSourceParser("TONIZUTOON", "ToniZu.com", "tr", ContentType.HENTAI)
|
||||
internal class Tonizutoon(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.TONIZUTOON, "tonizu.com") {
|
||||
MadaraParser(context, MangaParserSource.TONIZUTOON, "tonizu.xyz") {
|
||||
override val datePattern = "dd/mm/yyyy"
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.tr
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.ContentType
|
||||
@@ -7,6 +8,7 @@ import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
//Manga +18 require login.
|
||||
@Broken
|
||||
@MangaSourceParser("VIYAFANSUB", "ViyaFansub", "tr", ContentType.HENTAI)
|
||||
internal class ViyaFansub(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.VIYAFANSUB, "viyafansub.com")
|
||||
|
||||
@@ -12,7 +12,7 @@ import org.koitharu.kotatsu.parsers.util.*
|
||||
|
||||
@MangaSourceParser("HENTAICUBE", "HentaiCube", "vi", ContentType.HENTAI)
|
||||
internal class HentaiCube(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.HENTAICUBE, "cbhentai.net") {
|
||||
MadaraParser(context, MangaParserSource.HENTAICUBE, "hentaicb.mom") {
|
||||
|
||||
override val datePattern = "dd/MM/yyyy"
|
||||
override val tagPrefix = "the-loai/"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.vi
|
||||
|
||||
import org.jsoup.nodes.Document
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaChapter
|
||||
@@ -8,6 +9,7 @@ import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
import org.koitharu.kotatsu.parsers.util.*
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("TRUYENTRANHDAMMYY", "TruyenTranhDamMyy", "vi")
|
||||
internal class TruyenTranhDamMyy(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.TRUYENTRANHDAMMYY, "truyentranhdammyy.net") {
|
||||
|
||||
@@ -11,7 +11,7 @@ import java.text.SimpleDateFormat
|
||||
|
||||
@MangaSourceParser("MANGAJINX", "MangaJinx", "en")
|
||||
internal class MangaJinx(context: MangaLoaderContext) :
|
||||
MadthemeParser(context, MangaParserSource.MANGAJINX, "mangajinx.com") {
|
||||
MadthemeParser(context, MangaParserSource.MANGAJINX, "mgjinx.com") {
|
||||
override val listUrl = "search"
|
||||
|
||||
override suspend fun getChapters(doc: Document): List<MangaChapter> {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madtheme.en
|
||||
|
||||
import org.jsoup.nodes.Document
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.*
|
||||
@@ -9,6 +10,7 @@ import org.koitharu.kotatsu.parsers.util.*
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("MANHUASCAN", "kaliscan.io", "en")
|
||||
internal class ManhuaScan(context: MangaLoaderContext) :
|
||||
MadthemeParser(context, MangaParserSource.MANHUASCAN, "manhuascan.io") {
|
||||
|
||||
@@ -14,7 +14,7 @@ import java.util.*
|
||||
internal class MangakakalotTv(context: MangaLoaderContext) :
|
||||
MangaboxParser(context, MangaParserSource.MANGAKAKALOTTV) {
|
||||
|
||||
override val configKeyDomain = ConfigKey.Domain("ww7.mangakakalot.tv")
|
||||
override val configKeyDomain = ConfigKey.Domain("ww8.mangakakalot.tv")
|
||||
override val searchUrl = "/search/"
|
||||
override val listUrl = "/manga_list"
|
||||
override val availableSortOrders: Set<SortOrder> = EnumSet.of(
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
package org.koitharu.kotatsu.parsers.site.mangareader.ar
|
||||
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
|
||||
|
||||
@MangaSourceParser("CROWSCANS", "CrowScans", "ar")
|
||||
internal class CrowScans(context: MangaLoaderContext) :
|
||||
MangaReaderParser(context, MangaParserSource.CROWSCANS, "crowscans.com", pageSize = 30, searchPageSize = 10)
|
||||
@@ -10,7 +10,7 @@ import org.koitharu.kotatsu.parsers.util.*
|
||||
|
||||
@MangaSourceParser("MANJANOON", "Manjanoon.org", "ar")
|
||||
internal class Manjanoon(context: MangaLoaderContext) :
|
||||
MangaReaderParser(context, MangaParserSource.MANJANOON, "manjanoon.org", pageSize = 21, searchPageSize = 10) {
|
||||
MangaReaderParser(context, MangaParserSource.MANJANOON, "manjanoon.co", pageSize = 21, searchPageSize = 10) {
|
||||
|
||||
override suspend fun getDetails(manga: Manga): Manga {
|
||||
val docs = webClient.httpGet(manga.url.toAbsoluteUrl(domain)).parseHtml()
|
||||
|
||||
@@ -7,6 +7,7 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
|
||||
|
||||
@MangaSourceParser("ASTRASCANS", "AstraScans", "en")
|
||||
internal class AstraScans(context: MangaLoaderContext) :
|
||||
MangaReaderParser(context, MangaParserSource.ASTRASCANS, "astrascans.com", pageSize = 30, searchPageSize = 10) {
|
||||
MangaReaderParser(context, MangaParserSource.ASTRASCANS, "astrascans.org", pageSize = 20, searchPageSize = 10) {
|
||||
override val isTagsExclusionSupported = false
|
||||
override val listUrl = "/series"
|
||||
}
|
||||
|
||||
@@ -6,6 +6,6 @@ import org.koitharu.kotatsu.parsers.model.ContentType
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
|
||||
|
||||
@MangaSourceParser("EDOUJIN", "EDoujin", "en", ContentType.HENTAI)
|
||||
@MangaSourceParser("EDOUJIN", "EHentaiManga", "en", ContentType.HENTAI)
|
||||
internal class EDoujin(context: MangaLoaderContext) :
|
||||
MangaReaderParser(context, MangaParserSource.EDOUJIN, "edoujin.net", pageSize = 25, searchPageSize = 10)
|
||||
MangaReaderParser(context, MangaParserSource.EDOUJIN, "ehentaimanga.com", pageSize = 25, searchPageSize = 10)
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.koitharu.kotatsu.parsers.site.mangareader.en
|
||||
import androidx.collection.ArrayMap
|
||||
import kotlinx.coroutines.sync.withLock
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
@@ -13,6 +14,7 @@ import org.koitharu.kotatsu.parsers.util.domain
|
||||
import org.koitharu.kotatsu.parsers.util.parseHtml
|
||||
import org.koitharu.kotatsu.parsers.util.toTitleCase
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("FREAKCOMIC", "FreakComic", "en")
|
||||
internal class FreakComic(context: MangaLoaderContext) :
|
||||
MangaReaderParser(context, MangaParserSource.FREAKCOMIC, "freakcomic.com", pageSize = 20, searchPageSize = 10) {
|
||||
|
||||
@@ -5,8 +5,9 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
|
||||
|
||||
// redirect to @KAISCANS
|
||||
@MangaSourceParser("LUASCANS", "LuaScans", "en")
|
||||
internal class LuaScans(context: MangaLoaderContext) :
|
||||
MangaReaderParser(context, MangaParserSource.LUASCANS, "luacomic.com", pageSize = 20, searchPageSize = 10) {
|
||||
MangaReaderParser(context, MangaParserSource.LUASCANS, "kaiscans.org", pageSize = 20, searchPageSize = 10) {
|
||||
override val isTagsExclusionSupported = false
|
||||
}
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.mangareader.en
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("MANHWA_FREAK", "ManhwaFreak", "en")
|
||||
internal class ManhwaFreak(context: MangaLoaderContext) :
|
||||
MangaReaderParser(context, MangaParserSource.MANHWA_FREAK, "manhwafreak.site", pageSize = 20, searchPageSize = 10)
|
||||
|
||||
@@ -7,7 +7,7 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
|
||||
|
||||
@MangaSourceParser("NEROSCANS", "NeroScans", "en")
|
||||
internal class NeroScans(context: MangaLoaderContext) :
|
||||
MangaReaderParser(context, MangaParserSource.NEROSCANS, "neroscans.com", pageSize = 20, searchPageSize = 10) {
|
||||
MangaReaderParser(context, MangaParserSource.NEROSCANS, "vofeg.com", pageSize = 20, searchPageSize = 10) {
|
||||
override val listUrl = "/series"
|
||||
override val isTagsExclusionSupported = false
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
|
||||
|
||||
@MangaSourceParser("READKOMIK", "ReadKomik", "en")
|
||||
internal class Readkomik(context: MangaLoaderContext) :
|
||||
MangaReaderParser(context, MangaParserSource.READKOMIK, "readkomik.com", pageSize = 20, searchPageSize = 20) {
|
||||
MangaReaderParser(context, MangaParserSource.READKOMIK, "novelstreams.com", pageSize = 20, searchPageSize = 20) {
|
||||
override val datePattern = "MMM d, yyyy"
|
||||
override val isTagsExclusionSupported = false
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
|
||||
|
||||
@MangaSourceParser("VOIDSCANS", "VoidScans", "en")
|
||||
internal class VoidScans(context: MangaLoaderContext) :
|
||||
MangaReaderParser(context, MangaParserSource.VOIDSCANS, "void-scans.com", pageSize = 150, searchPageSize = 150) {
|
||||
MangaReaderParser(context, MangaParserSource.VOIDSCANS, "hivetoon.com", pageSize = 150, searchPageSize = 150) {
|
||||
override val datePattern = "MMM d, yyyy"
|
||||
override val isTagsExclusionSupported = false
|
||||
}
|
||||
|
||||
@@ -7,6 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
|
||||
|
||||
@MangaSourceParser("INARIMANGA", "InariManga", "es")
|
||||
internal class InariManga(context: MangaLoaderContext) :
|
||||
MangaReaderParser(context, MangaParserSource.INARIMANGA, "inarimanga.net", pageSize = 20, searchPageSize = 10) {
|
||||
MangaReaderParser(context, MangaParserSource.INARIMANGA, "nakamatoon.com", pageSize = 20, searchPageSize = 10) {
|
||||
override val isTagsExclusionSupported = false
|
||||
}
|
||||
|
||||
@@ -5,6 +5,6 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
|
||||
|
||||
@MangaSourceParser("MIAUSCAN", "MiauScan", "es")
|
||||
@MangaSourceParser("MIAUSCAN", "LectorMiau", "es")
|
||||
internal class MiauScan(context: MangaLoaderContext) :
|
||||
MangaReaderParser(context, MangaParserSource.MIAUSCAN, "miaucomics.org", pageSize = 20, searchPageSize = 10)
|
||||
MangaReaderParser(context, MangaParserSource.MIAUSCAN, "lectormiau.com", pageSize = 20, searchPageSize = 10)
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.mangareader.es
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("TECNOSCANN", "TecnoScann", "es")
|
||||
internal class TecnoScann(context: MangaLoaderContext) :
|
||||
MangaReaderParser(context, MangaParserSource.TECNOSCANN, "tecnoscann.com", 20, 10) {
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package org.koitharu.kotatsu.parsers.site.mangareader.id
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
|
||||
import java.util.*
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("ALCEASCAN", "AlceaScan", "id")
|
||||
internal class AlceaScan(context: MangaLoaderContext) :
|
||||
MangaReaderParser(context, MangaParserSource.ALCEASCAN, "alceascan.my.id", pageSize = 20, searchPageSize = 10) {
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.mangareader.id
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("COMICASO", "Comicaso", "id")
|
||||
internal class Comicaso(context: MangaLoaderContext) :
|
||||
MangaReaderParser(context, MangaParserSource.COMICASO, "comicaso.com", pageSize = 20, searchPageSize = 10) {
|
||||
|
||||
@@ -6,8 +6,8 @@ import org.koitharu.kotatsu.parsers.model.ContentType
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
|
||||
|
||||
@MangaSourceParser("DOUJINDESURIP", "DoujinDesu.cfd", "id", ContentType.HENTAI)
|
||||
@MangaSourceParser("DOUJINDESURIP", "DoujinDesu.mobi", "id", ContentType.HENTAI)
|
||||
internal class DoujinDesuRip(context: MangaLoaderContext) :
|
||||
MangaReaderParser(context, MangaParserSource.DOUJINDESURIP, "doujindesu.cfd", pageSize = 20, searchPageSize = 10) {
|
||||
MangaReaderParser(context, MangaParserSource.DOUJINDESURIP, "doujindesu.mobi", pageSize = 20, searchPageSize = 10) {
|
||||
override val isTagsExclusionSupported = false
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import java.util.*
|
||||
|
||||
@MangaSourceParser("DOUJINKU", "DoujinKu", "id", ContentType.HENTAI)
|
||||
internal class DoujinKu(context: MangaLoaderContext) :
|
||||
MangaReaderParser(context, MangaParserSource.DOUJINKU, "doujinku.xyz", pageSize = 20, searchPageSize = 10) {
|
||||
MangaReaderParser(context, MangaParserSource.DOUJINKU, "doujinku.org", pageSize = 20, searchPageSize = 10) {
|
||||
override val sourceLocale: Locale = Locale.ENGLISH
|
||||
override val isTagsExclusionSupported = false
|
||||
}
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.mangareader.id
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("KOMIKAV", "KomikAv", "id")
|
||||
internal class KomikAvParser(context: MangaLoaderContext) :
|
||||
MangaReaderParser(context, MangaParserSource.KOMIKAV, "komikav.com", pageSize = 20, searchPageSize = 10) {
|
||||
|
||||
@@ -7,9 +7,9 @@ import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
|
||||
import java.util.*
|
||||
|
||||
@MangaSourceParser("KOMIKDEWASA", "komikRemaja.cfd", "id", ContentType.HENTAI)
|
||||
@MangaSourceParser("KOMIKDEWASA", "komikRemaja.icu", "id", ContentType.HENTAI)
|
||||
internal class KomikDewasaParser(context: MangaLoaderContext) :
|
||||
MangaReaderParser(context, MangaParserSource.KOMIKDEWASA, "komikremaja.cfd", pageSize = 20, searchPageSize = 10) {
|
||||
MangaReaderParser(context, MangaParserSource.KOMIKDEWASA, "komikremaja.icu", pageSize = 20, searchPageSize = 10) {
|
||||
override val listUrl: String = "/komik"
|
||||
override val sourceLocale: Locale = Locale.ENGLISH
|
||||
override val isTagsExclusionSupported = false
|
||||
|
||||
@@ -8,7 +8,7 @@ import java.util.*
|
||||
|
||||
@MangaSourceParser("KOMIKLOKAL", "KomikMirror", "id")
|
||||
internal class KomikLokalParser(context: MangaLoaderContext) :
|
||||
MangaReaderParser(context, MangaParserSource.KOMIKLOKAL, "komikmirror.lol", pageSize = 20, searchPageSize = 10) {
|
||||
MangaReaderParser(context, MangaParserSource.KOMIKLOKAL, "komikmu.fun", pageSize = 20, searchPageSize = 10) {
|
||||
override val datePattern = "MMM d, yyyy"
|
||||
override val sourceLocale: Locale = Locale.ENGLISH
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.koitharu.kotatsu.parsers.site.mangareader.id
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.*
|
||||
@@ -9,6 +10,7 @@ import org.koitharu.kotatsu.parsers.util.oneOrThrowIfMany
|
||||
import org.koitharu.kotatsu.parsers.util.parseHtml
|
||||
import org.koitharu.kotatsu.parsers.util.urlEncoded
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("KOMIKSAN", "KomikSan", "id")
|
||||
internal class KomikSan(context: MangaLoaderContext) :
|
||||
MangaReaderParser(context, MangaParserSource.KOMIKSAN, "komiksan.link", pageSize = 40, searchPageSize = 10) {
|
||||
|
||||
@@ -9,6 +9,6 @@ import java.util.*
|
||||
|
||||
@MangaSourceParser("KOMIKLOKALCFD", "KomikLokal.mom", "id", ContentType.HENTAI)
|
||||
internal class KomiklokalCfd(context: MangaLoaderContext) :
|
||||
MangaReaderParser(context, MangaParserSource.KOMIKLOKALCFD, "komiklokal.mom", pageSize = 30, searchPageSize = 10) {
|
||||
MangaReaderParser(context, MangaParserSource.KOMIKLOKALCFD, "komiklokal.shop", pageSize = 30, searchPageSize = 10) {
|
||||
override val sourceLocale: Locale = Locale.ENGLISH
|
||||
}
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package org.koitharu.kotatsu.parsers.site.mangareader.id
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
|
||||
import java.util.*
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("MANGASHIRO", "MangaShiro", "id")
|
||||
internal class MangaShiro(context: MangaLoaderContext) :
|
||||
MangaReaderParser(context, MangaParserSource.MANGASHIRO, "mangashiro.me", pageSize = 20, searchPageSize = 10) {
|
||||
|
||||
@@ -8,6 +8,6 @@ import java.util.*
|
||||
|
||||
@MangaSourceParser("MANGAYARO", "MangaYaro", "id")
|
||||
internal class Mangayaro(context: MangaLoaderContext) :
|
||||
MangaReaderParser(context, MangaParserSource.MANGAYARO, "www.mangayaro.id", pageSize = 20, searchPageSize = 20) {
|
||||
MangaReaderParser(context, MangaParserSource.MANGAYARO, "mangayaro.id", pageSize = 20, searchPageSize = 20) {
|
||||
override val sourceLocale: Locale = Locale.ENGLISH
|
||||
}
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package org.koitharu.kotatsu.parsers.site.mangareader.id
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
|
||||
import java.util.*
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("OTSUGAMI", "Otsugami", "id")
|
||||
internal class Otsugami(context: MangaLoaderContext) :
|
||||
MangaReaderParser(context, MangaParserSource.OTSUGAMI, "otsugami.id", pageSize = 40, searchPageSize = 10) {
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.mangareader.id
|
||||
|
||||
import org.koitharu.kotatsu.parsers.Broken
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
|
||||
|
||||
@Broken
|
||||
@MangaSourceParser("SHEAKOMIK", "SheaKomik", "id")
|
||||
internal class Sheakomik(context: MangaLoaderContext) :
|
||||
MangaReaderParser(context, MangaParserSource.SHEAKOMIK, "sheakomik.com", pageSize = 40, searchPageSize = 40) {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user