[site/vi] Update sources domain
This commit is contained in:
@@ -13,7 +13,7 @@ import java.util.*
|
||||
|
||||
@MangaSourceParser("HENTAIZ", "HentaiZ", "vi", ContentType.HENTAI)
|
||||
internal class HentaiZ(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaParserSource.HENTAIZ, "hentaiz.news", 24) {
|
||||
MadaraParser(context, MangaParserSource.HENTAIZ, "hentaiz.help", 24) {
|
||||
override val listUrl = "truyen-hentai/"
|
||||
override val tagPrefix = "the-loai/"
|
||||
override val datePattern = "dd/MM/yyyy"
|
||||
|
||||
@@ -22,7 +22,7 @@ private const val PAGE_SIZE = 20
|
||||
internal class CMangaParser(context: MangaLoaderContext) :
|
||||
LegacyPagedMangaParser(context, MangaParserSource.CMANGA, PAGE_SIZE), MangaParserAuthProvider {
|
||||
|
||||
override val configKeyDomain: ConfigKey.Domain = ConfigKey.Domain("cmangaob.com")
|
||||
override val configKeyDomain: ConfigKey.Domain = ConfigKey.Domain("cmangaax.com")
|
||||
|
||||
override val availableSortOrders: Set<SortOrder>
|
||||
get() = EnumSet.of(
|
||||
|
||||
@@ -16,7 +16,7 @@ internal class DuaLeoTruyen(context: MangaLoaderContext) :
|
||||
LegacyPagedMangaParser(context, MangaParserSource.DUALEOTRUYEN, 60) {
|
||||
|
||||
override val configKeyDomain: ConfigKey.Domain
|
||||
get() = ConfigKey.Domain("dualeotruyenbotz.com")
|
||||
get() = ConfigKey.Domain("dualeotruyenbotx.com")
|
||||
|
||||
override val userAgentKey = ConfigKey.UserAgent(UserAgents.CHROME_DESKTOP)
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ import java.util.*
|
||||
internal class Hentai18VN(context: MangaLoaderContext) :
|
||||
LegacyPagedMangaParser(context, MangaParserSource.HENTAI18VN, 30) {
|
||||
|
||||
override val configKeyDomain = ConfigKey.Domain("hentai18vn.online")
|
||||
override val configKeyDomain = ConfigKey.Domain("hentai18vn.pics")
|
||||
|
||||
override fun onCreateConfig(keys: MutableCollection<ConfigKey<*>>) {
|
||||
super.onCreateConfig(keys)
|
||||
|
||||
@@ -14,7 +14,7 @@ import java.util.*
|
||||
internal class HentaiVnBuzz(context: MangaLoaderContext) :
|
||||
LegacyPagedMangaParser(context, MangaParserSource.HENTAIVNBUZZ, 24) {
|
||||
|
||||
override val configKeyDomain = ConfigKey.Domain("hentaivn.bar")
|
||||
override val configKeyDomain = ConfigKey.Domain("hentaivn.guru")
|
||||
|
||||
override fun onCreateConfig(keys: MutableCollection<ConfigKey<*>>) {
|
||||
super.onCreateConfig(keys)
|
||||
|
||||
@@ -11,7 +11,7 @@ import java.util.*
|
||||
@MangaSourceParser("LXMANGA", "LXManga", "vi", type = ContentType.HENTAI)
|
||||
internal class LxManga(context: MangaLoaderContext) : LegacyPagedMangaParser(context, MangaParserSource.LXMANGA, 60) {
|
||||
|
||||
override val configKeyDomain = ConfigKey.Domain("lxmanga.wiki")
|
||||
override val configKeyDomain = ConfigKey.Domain("lxmanga.sbs")
|
||||
|
||||
override fun onCreateConfig(keys: MutableCollection<ConfigKey<*>>) {
|
||||
super.onCreateConfig(keys)
|
||||
|
||||
@@ -7,6 +7,7 @@ import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.config.ConfigKey
|
||||
import org.koitharu.kotatsu.parsers.core.LegacyPagedMangaParser
|
||||
import org.koitharu.kotatsu.parsers.exception.ParseException
|
||||
import org.koitharu.kotatsu.parsers.model.*
|
||||
import org.koitharu.kotatsu.parsers.util.*
|
||||
import org.koitharu.kotatsu.parsers.util.json.getStringOrNull
|
||||
@@ -243,17 +244,23 @@ internal class NhentaiWorld(context: MangaLoaderContext) :
|
||||
}
|
||||
|
||||
override suspend fun getPages(chapter: MangaChapter): List<MangaPage> {
|
||||
val doc = webClient.httpGet(chapter.url.toAbsoluteUrl(domain)).parseHtml()
|
||||
return doc.select("img.m-auto.read-image.w-auto.h-auto.md\\:min-h-\\[800px\\].min-h-\\[300px\\]")
|
||||
.map { img ->
|
||||
val url = img.requireSrc()
|
||||
MangaPage(
|
||||
id = generateUid(url),
|
||||
url = url,
|
||||
preview = null,
|
||||
source = source,
|
||||
)
|
||||
}
|
||||
val url = chapter.url.toAbsoluteUrl(domain)
|
||||
val doc = webClient.httpGet(url).parseHtml()
|
||||
val root = doc.select("img.m-auto.read-image.w-auto.h-auto.md\\:min-h-\\[800px\\].min-h-\\[300px\\]")
|
||||
|
||||
if (root.isEmpty()) { // for Debug #1604
|
||||
throw ParseException("Root not found!", url)
|
||||
}
|
||||
|
||||
return root.map { img ->
|
||||
val imgUrl = img.requireSrc()
|
||||
MangaPage(
|
||||
id = generateUid(imgUrl),
|
||||
url = imgUrl,
|
||||
preview = null,
|
||||
source = source,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private suspend fun fetchTags(): Set<MangaTag> {
|
||||
|
||||
@@ -27,7 +27,7 @@ internal abstract class WpComicsParser(
|
||||
) : LegacyPagedMangaParser(context, source, pageSize) {
|
||||
|
||||
companion object {
|
||||
const val netDomain = "nettruyenmoe.com"
|
||||
const val netDomain = "nettruyenfpt.com"
|
||||
}
|
||||
|
||||
override val configKeyDomain = ConfigKey.Domain(domain)
|
||||
|
||||
@@ -12,11 +12,11 @@ import java.util.*
|
||||
|
||||
@MangaSourceParser("DOCTRUYEN3Q", "DocTruyen3Q", "vi")
|
||||
internal class DocTruyen3Q(context: MangaLoaderContext) :
|
||||
WpComicsParser(context, MangaParserSource.DOCTRUYEN3Q, "truyen3qvip.com", 36) {
|
||||
WpComicsParser(context, MangaParserSource.DOCTRUYEN3Q, "doctruyen3qui5.pro", 36) {
|
||||
|
||||
override val configKeyDomain: ConfigKey.Domain = ConfigKey.Domain(
|
||||
"truyen3qvip.com",
|
||||
"doctruyen3qui3.pro", // Main domain
|
||||
"doctruyen3qui5.pro",
|
||||
"truyen3qvip.com"
|
||||
)
|
||||
|
||||
override val datePattern = "dd/MM/yyyy"
|
||||
@@ -230,9 +230,10 @@ internal class DocTruyen3Q(context: MangaLoaderContext) :
|
||||
"sp1.jpg") ||
|
||||
url.contains("3q_fake") ||
|
||||
url.contains("sp2.jpg") ||
|
||||
url.contains("3qui3.jpg") ||
|
||||
url.contains("3qui5.jpg") ||
|
||||
url.contains("3q_top") ||
|
||||
url.contains("3q282.jpg")
|
||||
url.contains("3q282.jpg") ||
|
||||
url.contains("3qui5_banner.jpg")
|
||||
) {
|
||||
return@mapNotNull null
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ import org.koitharu.kotatsu.parsers.util.toAbsoluteUrl
|
||||
|
||||
@MangaSourceParser("HAMTRUYEN", "Ham Truyện", "vi")
|
||||
internal class HamTruyen(context: MangaLoaderContext) :
|
||||
WpComicsParser(context, MangaParserSource.HAMTRUYEN, "hamtruyen.cc", 44) {
|
||||
WpComicsParser(context, MangaParserSource.HAMTRUYEN, "hamtruyen1.com", 44) {
|
||||
|
||||
override suspend fun getDetails(manga: Manga): Manga = coroutineScope {
|
||||
val fullUrl = manga.url.toAbsoluteUrl(domain)
|
||||
|
||||
@@ -14,7 +14,7 @@ import java.util.*
|
||||
|
||||
@MangaSourceParser("NEWTRUYEN", "NewTruyen", "vi")
|
||||
internal class NewTruyen(context: MangaLoaderContext) :
|
||||
WpComicsParser(context, MangaParserSource.NEWTRUYEN, "newtruyen5.com", 36) {
|
||||
WpComicsParser(context, MangaParserSource.NEWTRUYEN, "newtruyen6.com", 36) {
|
||||
|
||||
override suspend fun getFilterOptions() = MangaListFilterOptions(
|
||||
availableTags = getAvailableTags(),
|
||||
|
||||
@@ -12,9 +12,9 @@ import java.util.*
|
||||
|
||||
@MangaSourceParser("TOPTRUYEN", "TopTruyen", "vi")
|
||||
internal class TopTruyen(context: MangaLoaderContext) :
|
||||
WpComicsParser(context, MangaParserSource.TOPTRUYEN, "www.toptruyentv2.pro", 36) {
|
||||
WpComicsParser(context, MangaParserSource.TOPTRUYEN, "www.toptruyentv3.pro", 36) {
|
||||
|
||||
override val configKeyDomain = ConfigKey.Domain("www.toptruyentv2.pro")
|
||||
override val configKeyDomain = ConfigKey.Domain("www.toptruyentv3.pro")
|
||||
|
||||
override val datePattern = "dd/MM/yyyy"
|
||||
|
||||
@@ -223,7 +223,11 @@ internal class TopTruyen(context: MangaLoaderContext) :
|
||||
?: img.attrAsRelativeUrlOrNull("data-original")
|
||||
?: return@mapNotNull null
|
||||
|
||||
if (url.contains("toptruyentv.jpg") || url.contains("follow.png") || url.contains("image_default.png")) { // Remove ads images
|
||||
if (url.contains("toptruyentv.jpg") ||
|
||||
url.contains("follow.png") ||
|
||||
url.contains("image_default.png") ||
|
||||
url.contains("toptruyentv3.jpg") ||
|
||||
url.contains("img_001_1743221470.png")) { // Remove ads images
|
||||
return@mapNotNull null
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user