@@ -8,4 +8,4 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
|||||||
|
|
||||||
@MangaSourceParser("CVNSCAN", "CvnScan", "pt", ContentType.HENTAI)
|
@MangaSourceParser("CVNSCAN", "CvnScan", "pt", ContentType.HENTAI)
|
||||||
internal class CvnScan(context: MangaLoaderContext) :
|
internal class CvnScan(context: MangaLoaderContext) :
|
||||||
MadaraParser(context, MangaParserSource.CVNSCAN, "cvnscan.com")
|
MadaraParser(context, MangaParserSource.CVNSCAN, "covendasbruxonas.com")
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import java.util.Locale
|
|||||||
|
|
||||||
@MangaSourceParser("CATHARSISWORLD", "CatharsisWorld", "es")
|
@MangaSourceParser("CATHARSISWORLD", "CatharsisWorld", "es")
|
||||||
internal class CatharsisWorld(context: MangaLoaderContext) :
|
internal class CatharsisWorld(context: MangaLoaderContext) :
|
||||||
MangaReaderParser(context, MangaParserSource.CATHARSISWORLD, "altayscans.com", pageSize = 30, searchPageSize = 10) {
|
MangaReaderParser(context, MangaParserSource.CATHARSISWORLD, "catharsisworld.akan01.com", pageSize = 30, searchPageSize = 10) {
|
||||||
override val sourceLocale: Locale = Locale.ENGLISH
|
override val sourceLocale: Locale = Locale.ENGLISH
|
||||||
override val filterCapabilities: MangaListFilterCapabilities
|
override val filterCapabilities: MangaListFilterCapabilities
|
||||||
get() = super.filterCapabilities.copy(
|
get() = super.filterCapabilities.copy(
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import java.util.*
|
|||||||
internal class ComXParser(context: MangaLoaderContext) :
|
internal class ComXParser(context: MangaLoaderContext) :
|
||||||
PagedMangaParser(context, MangaParserSource.COMX, 20) {
|
PagedMangaParser(context, MangaParserSource.COMX, 20) {
|
||||||
|
|
||||||
override val configKeyDomain = ConfigKey.Domain("comx.life")
|
override val configKeyDomain = ConfigKey.Domain("com-x.life", "comx.life")
|
||||||
|
|
||||||
private val availableTags = suspendLazy(initializer = ::fetchTags)
|
private val availableTags = suspendLazy(initializer = ::fetchTags)
|
||||||
private val cdnImageUrl = "img.com-x.life/comix/"
|
private val cdnImageUrl = "img.com-x.life/comix/"
|
||||||
@@ -184,7 +184,7 @@ internal class ComXParser(context: MangaLoaderContext) :
|
|||||||
override suspend fun getPages(chapter: MangaChapter): List<MangaPage> {
|
override suspend fun getPages(chapter: MangaChapter): List<MangaPage> {
|
||||||
val newsId = chapter.url.substringAfter("/reader/").substringBefore("/")
|
val newsId = chapter.url.substringAfter("/reader/").substringBefore("/")
|
||||||
context.cookieJar.insertCookies(domain, "adult=$newsId")
|
context.cookieJar.insertCookies(domain, "adult=$newsId")
|
||||||
|
|
||||||
val doc = webClient.httpGet(chapter.url.toAbsoluteUrl(domain)).parseHtml()
|
val doc = webClient.httpGet(chapter.url.toAbsoluteUrl(domain)).parseHtml()
|
||||||
val data = doc.selectFirst("script:containsData(__DATA__)")?.data()
|
val data = doc.selectFirst("script:containsData(__DATA__)")?.data()
|
||||||
?.substringAfter("=")
|
?.substringAfter("=")
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ internal class DesuMeParser(context: MangaLoaderContext) :
|
|||||||
"desu.city",
|
"desu.city",
|
||||||
"desu.work",
|
"desu.work",
|
||||||
"desu.store",
|
"desu.store",
|
||||||
"desu.me",
|
|
||||||
"desu.win",
|
"desu.win",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ internal class NudeMoonParser(
|
|||||||
|
|
||||||
override val configKeyDomain = ConfigKey.Domain(
|
override val configKeyDomain = ConfigKey.Domain(
|
||||||
"b.nude-moon.fun",
|
"b.nude-moon.fun",
|
||||||
"x.nude-moon.fun",
|
|
||||||
"nude-moon.org",
|
"nude-moon.org",
|
||||||
"nude-moon.net",
|
"nude-moon.net",
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ internal class RemangaParser(
|
|||||||
|
|
||||||
override fun getRequestHeaders() = getApiHeaders()
|
override fun getRequestHeaders() = getApiHeaders()
|
||||||
|
|
||||||
override val configKeyDomain = ConfigKey.Domain("remanga.org", "реманга.орг", "remanga.me")
|
override val configKeyDomain = ConfigKey.Domain("remanga.org", "реманга.орг")
|
||||||
|
|
||||||
override val authUrl: String
|
override val authUrl: String
|
||||||
get() = "https://${domain}"
|
get() = "https://${domain}"
|
||||||
|
|||||||
@@ -16,9 +16,11 @@ import org.koitharu.kotatsu.parsers.network.UserAgents
|
|||||||
import org.koitharu.kotatsu.parsers.util.*
|
import org.koitharu.kotatsu.parsers.util.*
|
||||||
import org.koitharu.kotatsu.parsers.util.json.getStringOrNull
|
import org.koitharu.kotatsu.parsers.util.json.getStringOrNull
|
||||||
import org.koitharu.kotatsu.parsers.util.json.mapJSON
|
import org.koitharu.kotatsu.parsers.util.json.mapJSON
|
||||||
|
import org.koitharu.kotatsu.parsers.Broken
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
|
@Broken
|
||||||
@MangaSourceParser("ZENMANGA", "ZenManga", "ru")
|
@MangaSourceParser("ZENMANGA", "ZenManga", "ru")
|
||||||
internal class ZenMangaParser(context: MangaLoaderContext) :
|
internal class ZenMangaParser(context: MangaLoaderContext) :
|
||||||
PagedMangaParser(context, MangaParserSource.ZENMANGA, 30),
|
PagedMangaParser(context, MangaParserSource.ZENMANGA, 30),
|
||||||
@@ -31,7 +33,7 @@ internal class ZenMangaParser(context: MangaLoaderContext) :
|
|||||||
setFirstPage(0)
|
setFirstPage(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
override val configKeyDomain = ConfigKey.Domain("zenmanga.io", "v1.zenmanga.one", "v1.zenmanga.me")
|
override val configKeyDomain = ConfigKey.Domain("inkstory.me")
|
||||||
|
|
||||||
override val availableSortOrders: Set<SortOrder> = EnumSet.of(
|
override val availableSortOrders: Set<SortOrder> = EnumSet.of(
|
||||||
SortOrder.POPULARITY,
|
SortOrder.POPULARITY,
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ internal class AllHentaiParser(
|
|||||||
"20.allhen.online",
|
"20.allhen.online",
|
||||||
"z.ahen.me",
|
"z.ahen.me",
|
||||||
"24.allhen.online",
|
"24.allhen.online",
|
||||||
"z.allhen.online",
|
|
||||||
"2023.allhen.online",
|
"2023.allhen.online",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -20,11 +20,7 @@ internal class ReadmangaParser(
|
|||||||
|
|
||||||
val domains = arrayOf(
|
val domains = arrayOf(
|
||||||
"a.zazaza.me",
|
"a.zazaza.me",
|
||||||
"t.readmanga.io",
|
"3.readmanga.ru",
|
||||||
"zz.readmanga.io",
|
|
||||||
"readmanga.live",
|
|
||||||
"readmanga.io",
|
|
||||||
"readmanga.me",
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,11 +12,11 @@ import java.util.*
|
|||||||
internal class HenChanParser(context: MangaLoaderContext) : ChanParser(context, MangaParserSource.HENCHAN) {
|
internal class HenChanParser(context: MangaLoaderContext) : ChanParser(context, MangaParserSource.HENCHAN) {
|
||||||
|
|
||||||
override val configKeyDomain = ConfigKey.Domain(
|
override val configKeyDomain = ConfigKey.Domain(
|
||||||
|
"x5.h-chan.me",
|
||||||
"xxxx.henchan.pro",
|
"xxxx.henchan.pro",
|
||||||
"xxl.hentaichan.live",
|
"xxl.hentaichan.live",
|
||||||
"xxx.henchan.pro",
|
"xxx.henchan.pro",
|
||||||
"y.hentaichan.live",
|
"y.hentaichan.live",
|
||||||
"xxx.hentaichan.live",
|
|
||||||
"xx.hentaichan.live",
|
"xx.hentaichan.live",
|
||||||
"x.henchan.pro",
|
"x.henchan.pro",
|
||||||
"hentaichan.live",
|
"hentaichan.live",
|
||||||
|
|||||||
Reference in New Issue
Block a user