chore (site/vi): Update sources domain
This commit is contained in:
@@ -16,7 +16,7 @@ import org.koitharu.kotatsu.parsers.util.urlEncoded
|
|||||||
|
|
||||||
@MangaSourceParser("HENTAIVNPLUS", "HentaiVN.plus", "vi", ContentType.HENTAI)
|
@MangaSourceParser("HENTAIVNPLUS", "HentaiVN.plus", "vi", ContentType.HENTAI)
|
||||||
internal class HentaiVnPlus(context: MangaLoaderContext) :
|
internal class HentaiVnPlus(context: MangaLoaderContext) :
|
||||||
MadaraParser(context, MangaParserSource.HENTAIVNPLUS, "hentaivn.cx", 24) {
|
MadaraParser(context, MangaParserSource.HENTAIVNPLUS, "hentaivn.party", 24) {
|
||||||
override val listUrl = "truyen-hentai/"
|
override val listUrl = "truyen-hentai/"
|
||||||
override val tagPrefix = "the-loai/"
|
override val tagPrefix = "the-loai/"
|
||||||
override val datePattern = "dd/MM/yyyy"
|
override val datePattern = "dd/MM/yyyy"
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
|||||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||||
import org.koitharu.kotatsu.parsers.model.*
|
import org.koitharu.kotatsu.parsers.model.*
|
||||||
import org.koitharu.kotatsu.parsers.util.*
|
import org.koitharu.kotatsu.parsers.util.*
|
||||||
import java.util.*
|
|
||||||
import org.koitharu.kotatsu.parsers.Broken
|
import org.koitharu.kotatsu.parsers.Broken
|
||||||
|
|
||||||
@Broken
|
@Broken
|
||||||
@@ -26,7 +25,7 @@ internal class HentaiZ(context: MangaLoaderContext) :
|
|||||||
|
|
||||||
val href = doc.selectFirst("head meta[property='og:url']")?.attr("content")?.toRelativeUrl(domain) ?: manga.url
|
val href = doc.selectFirst("head meta[property='og:url']")?.attr("content")?.toRelativeUrl(domain) ?: manga.url
|
||||||
val testCheckAsync = doc.select(selectTestAsync)
|
val testCheckAsync = doc.select(selectTestAsync)
|
||||||
val chaptersDeferred = if (testCheckAsync.isNullOrEmpty()) {
|
val chaptersDeferred = if (testCheckAsync.isEmpty()) {
|
||||||
async { loadChapters(href, doc) }
|
async { loadChapters(href, doc) }
|
||||||
} else {
|
} else {
|
||||||
async { getChapters(manga, doc) }
|
async { getChapters(manga, doc) }
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import org.koitharu.kotatsu.parsers.util.*
|
|||||||
|
|
||||||
@MangaSourceParser("QUAANHDAOCUTEO", "Quả Anh Đào Cuteo", "vi", ContentType.HENTAI)
|
@MangaSourceParser("QUAANHDAOCUTEO", "Quả Anh Đào Cuteo", "vi", ContentType.HENTAI)
|
||||||
internal class Quaanhdaocuteo(context: MangaLoaderContext) :
|
internal class Quaanhdaocuteo(context: MangaLoaderContext) :
|
||||||
MadaraParser(context, MangaParserSource.QUAANHDAOCUTEO, "qadcuteo.org") {
|
MadaraParser(context, MangaParserSource.QUAANHDAOCUTEO, "qadcuteo.cc") {
|
||||||
override val datePattern = "dd/MM/yyyy"
|
override val datePattern = "dd/MM/yyyy"
|
||||||
override val selectPage = "p img"
|
override val selectPage = "p img"
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ private const val PAGE_SIZE = 20
|
|||||||
internal class CMangaParser(context: MangaLoaderContext) :
|
internal class CMangaParser(context: MangaLoaderContext) :
|
||||||
PagedMangaParser(context, MangaParserSource.CMANGA, PAGE_SIZE), MangaParserAuthProvider {
|
PagedMangaParser(context, MangaParserSource.CMANGA, PAGE_SIZE), MangaParserAuthProvider {
|
||||||
|
|
||||||
override val configKeyDomain: ConfigKey.Domain = ConfigKey.Domain("cmangax4.com")
|
override val configKeyDomain: ConfigKey.Domain = ConfigKey.Domain("cmangax6.com")
|
||||||
|
|
||||||
override val availableSortOrders: Set<SortOrder>
|
override val availableSortOrders: Set<SortOrder>
|
||||||
get() = EnumSet.of(
|
get() = EnumSet.of(
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ internal class CuuTruyenParser(context: MangaLoaderContext) :
|
|||||||
"cuutruyen.net",
|
"cuutruyen.net",
|
||||||
"nettrom.com",
|
"nettrom.com",
|
||||||
"hetcuutruyen.net",
|
"hetcuutruyen.net",
|
||||||
"cuutruyenpip7z.site",
|
"nettrom.com",
|
||||||
"cuutruyen5c844.site",
|
"cuutruyen5c844.site",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ import java.util.*
|
|||||||
internal class DamCoNuong(context: MangaLoaderContext) :
|
internal class DamCoNuong(context: MangaLoaderContext) :
|
||||||
PagedMangaParser(context, MangaParserSource.DAMCONUONG, 30) {
|
PagedMangaParser(context, MangaParserSource.DAMCONUONG, 30) {
|
||||||
|
|
||||||
override val configKeyDomain = ConfigKey.Domain("damconuong.skin")
|
override val configKeyDomain = ConfigKey.Domain("damconuong.co")
|
||||||
|
|
||||||
private val availableTags = suspendLazy(initializer = ::fetchTags)
|
private val availableTags = suspendLazy(initializer = ::fetchTags)
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ internal class DuaLeoTruyen(context: MangaLoaderContext) :
|
|||||||
PagedMangaParser(context, MangaParserSource.DUALEOTRUYEN, 60) {
|
PagedMangaParser(context, MangaParserSource.DUALEOTRUYEN, 60) {
|
||||||
|
|
||||||
override val configKeyDomain: ConfigKey.Domain
|
override val configKeyDomain: ConfigKey.Domain
|
||||||
get() = ConfigKey.Domain("dualeotruyeng.com")
|
get() = ConfigKey.Domain("dualeotruyenev.com")
|
||||||
|
|
||||||
override val userAgentKey = ConfigKey.UserAgent(UserAgents.CHROME_DESKTOP)
|
override val userAgentKey = ConfigKey.UserAgent(UserAgents.CHROME_DESKTOP)
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import java.util.*
|
|||||||
internal class GocTruyenTranh(context: MangaLoaderContext) :
|
internal class GocTruyenTranh(context: MangaLoaderContext) :
|
||||||
PagedMangaParser(context, MangaParserSource.GOCTRUYENTRANH, 30) {
|
PagedMangaParser(context, MangaParserSource.GOCTRUYENTRANH, 30) {
|
||||||
|
|
||||||
override val configKeyDomain = ConfigKey.Domain("goctruyentranh.org")
|
override val configKeyDomain = ConfigKey.Domain("goctruyentranh.net")
|
||||||
|
|
||||||
override fun onCreateConfig(keys: MutableCollection<ConfigKey<*>>) {
|
override fun onCreateConfig(keys: MutableCollection<ConfigKey<*>>) {
|
||||||
super.onCreateConfig(keys)
|
super.onCreateConfig(keys)
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import java.util.*
|
|||||||
@MangaSourceParser("KURONEKO", "Kuro Neko / vi-Hentai", "vi", type = ContentType.HENTAI)
|
@MangaSourceParser("KURONEKO", "Kuro Neko / vi-Hentai", "vi", type = ContentType.HENTAI)
|
||||||
internal class KuroNeko(context: MangaLoaderContext) : PagedMangaParser(context, MangaParserSource.KURONEKO, 30) {
|
internal class KuroNeko(context: MangaLoaderContext) : PagedMangaParser(context, MangaParserSource.KURONEKO, 30) {
|
||||||
|
|
||||||
override val configKeyDomain = ConfigKey.Domain("vi-hentai.moe")
|
override val configKeyDomain = ConfigKey.Domain("vi-hentai.moe", "vi-hentai.org")
|
||||||
|
|
||||||
private val pagesRequestMutex = Mutex()
|
private val pagesRequestMutex = Mutex()
|
||||||
private var lastPagesRequestTime = 0L
|
private var lastPagesRequestTime = 0L
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ internal class TruyenTranh3Q(context: MangaLoaderContext) :
|
|||||||
private val relativeTimePattern = Regex("(\\d+)\\s*(phút|giờ|ngày|tuần) trước")
|
private val relativeTimePattern = Regex("(\\d+)\\s*(phút|giờ|ngày|tuần) trước")
|
||||||
private val absoluteTimePattern = Regex("(\\d{2}-\\d{2}-\\d{4})")
|
private val absoluteTimePattern = Regex("(\\d{2}-\\d{2}-\\d{4})")
|
||||||
|
|
||||||
override val configKeyDomain = ConfigKey.Domain("truyentranh3qq.com")
|
override val configKeyDomain = ConfigKey.Domain("truyentranh3qc.com")
|
||||||
|
|
||||||
override val availableSortOrders: Set<SortOrder> =
|
override val availableSortOrders: Set<SortOrder> =
|
||||||
EnumSet.of(
|
EnumSet.of(
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ internal class VcomycsParser(context: MangaLoaderContext) :
|
|||||||
PagedMangaParser(context, MangaParserSource.VCOMYCS, 36) {
|
PagedMangaParser(context, MangaParserSource.VCOMYCS, 36) {
|
||||||
|
|
||||||
override val configKeyDomain: ConfigKey.Domain
|
override val configKeyDomain: ConfigKey.Domain
|
||||||
get() = ConfigKey.Domain("vivicomi6.info")
|
get() = ConfigKey.Domain("vivicomi8.info")
|
||||||
|
|
||||||
override val availableSortOrders: Set<SortOrder>
|
override val availableSortOrders: Set<SortOrder>
|
||||||
get() = EnumSet.of(SortOrder.UPDATED)
|
get() = EnumSet.of(SortOrder.UPDATED)
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import java.util.*
|
|||||||
|
|
||||||
@MangaSourceParser("DOCTRUYEN3Q", "DocTruyen3Q", "vi")
|
@MangaSourceParser("DOCTRUYEN3Q", "DocTruyen3Q", "vi")
|
||||||
internal class DocTruyen3Q(context: MangaLoaderContext) :
|
internal class DocTruyen3Q(context: MangaLoaderContext) :
|
||||||
WpComicsParser(context, MangaParserSource.DOCTRUYEN3Q, "doctruyen3qui13.pro", 36) {
|
WpComicsParser(context, MangaParserSource.DOCTRUYEN3Q, "doctruyen3qui15.pro", 36) {
|
||||||
|
|
||||||
override val datePattern = "dd/MM/yyyy"
|
override val datePattern = "dd/MM/yyyy"
|
||||||
|
|
||||||
|
|||||||
@@ -17,12 +17,7 @@ import java.util.*
|
|||||||
|
|
||||||
@MangaSourceParser("MEHENTAIVN", "MeHentaiVN", "vi", ContentType.HENTAI)
|
@MangaSourceParser("MEHENTAIVN", "MeHentaiVN", "vi", ContentType.HENTAI)
|
||||||
internal class MeHentaiVN(context: MangaLoaderContext) :
|
internal class MeHentaiVN(context: MangaLoaderContext) :
|
||||||
WpComicsParser(context, MangaParserSource.MEHENTAIVN, "www.mehentaivn.xyz", 44) {
|
WpComicsParser(context, MangaParserSource.MEHENTAIVN, "www.hentaivnx.autos", 44) {
|
||||||
|
|
||||||
override val configKeyDomain: ConfigKey.Domain = ConfigKey.Domain(
|
|
||||||
"www.mehentaivn.xyz",
|
|
||||||
"www.hentaivnx.autos",
|
|
||||||
)
|
|
||||||
|
|
||||||
override fun getRequestHeaders() = super.getRequestHeaders().newBuilder()
|
override fun getRequestHeaders() = super.getRequestHeaders().newBuilder()
|
||||||
.add("referer", "https://$domain/")
|
.add("referer", "https://$domain/")
|
||||||
@@ -100,7 +95,7 @@ internal class MeHentaiVN(context: MangaLoaderContext) :
|
|||||||
}
|
}
|
||||||
|
|
||||||
webClient.httpGet(url) // execute
|
webClient.httpGet(url) // execute
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
val url = buildString {
|
val url = buildString {
|
||||||
append("https://$domain/")
|
append("https://$domain/")
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import java.util.*
|
|||||||
|
|
||||||
@MangaSourceParser("NEWTRUYEN", "NewTruyen", "vi")
|
@MangaSourceParser("NEWTRUYEN", "NewTruyen", "vi")
|
||||||
internal class NewTruyen(context: MangaLoaderContext) :
|
internal class NewTruyen(context: MangaLoaderContext) :
|
||||||
WpComicsParser(context, MangaParserSource.NEWTRUYEN, "newtruyentranh2.com", 36) {
|
WpComicsParser(context, MangaParserSource.NEWTRUYEN, "newtruyentranh4.com", 36) {
|
||||||
|
|
||||||
override suspend fun getFilterOptions() = MangaListFilterOptions(
|
override suspend fun getFilterOptions() = MangaListFilterOptions(
|
||||||
availableTags = getAvailableTags(),
|
availableTags = getAvailableTags(),
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import java.util.*
|
|||||||
|
|
||||||
@MangaSourceParser("TOPTRUYEN", "TopTruyen", "vi")
|
@MangaSourceParser("TOPTRUYEN", "TopTruyen", "vi")
|
||||||
internal class TopTruyen(context: MangaLoaderContext) :
|
internal class TopTruyen(context: MangaLoaderContext) :
|
||||||
WpComicsParser(context, MangaParserSource.TOPTRUYEN, "www.toptruyentv9.com", 36) {
|
WpComicsParser(context, MangaParserSource.TOPTRUYEN, "www.toptruyentv11.com", 36) {
|
||||||
|
|
||||||
override val datePattern = "dd/MM/yyyy"
|
override val datePattern = "dd/MM/yyyy"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user