[NetTruyen] Fix attempt 2

master
dragonx943 1 year ago
parent 040be87a54
commit 58593de53d

@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.otakusanctuary.OtakuSanctuaryParser import org.koitharu.kotatsu.parsers.site.otakusanctuary.OtakuSanctuaryParser
@MangaSourceParser("OTAKUSAN_EN", "Otaku Sanctuary (en)", "en") @MangaSourceParser("OTAKUSAN_EN", "Otaku Sanctuary (EN)", "en")
internal class OtakusanEn(context: MangaLoaderContext) : internal class OtakusanEn(context: MangaLoaderContext) :
OtakuSanctuaryParser(context, MangaParserSource.OTAKUSAN_EN, "otakusan.me") { OtakuSanctuaryParser(context, MangaParserSource.OTAKUSAN_EN, "otakusan.me") {
override val lang = "us" override val lang = "us"

@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.otakusanctuary.OtakuSanctuaryParser import org.koitharu.kotatsu.parsers.site.otakusanctuary.OtakuSanctuaryParser
@MangaSourceParser("OTAKUSAN_VI", "Otaku Sanctuary (vn)", "vi") @MangaSourceParser("OTAKUSAN_VI", "Otaku Sanctuary (VN)", "vi")
internal class OtakusanVi(context: MangaLoaderContext) : internal class OtakusanVi(context: MangaLoaderContext) :
OtakuSanctuaryParser(context, MangaParserSource.OTAKUSAN_VI, "otakusan.me") { OtakuSanctuaryParser(context, MangaParserSource.OTAKUSAN_VI, "otakusan.me") {
override val selectState = ".table-info tr:contains(Status) td" override val selectState = ".table-info tr:contains(Status) td"

@ -22,12 +22,13 @@ import java.util.*
@MangaSourceParser("NETTRUYEN", "NetTruyen", "vi") @MangaSourceParser("NETTRUYEN", "NetTruyen", "vi")
internal class NetTruyen(context: MangaLoaderContext) : internal class NetTruyen(context: MangaLoaderContext) :
WpComicsParser(context, MangaParserSource.NETTRUYEN, "nettruyenww.com", 44) { WpComicsParser(context, MangaParserSource.NETTRUYEN, "nettruyenww.com", 44) {
override val configKeyDomain: ConfigKey.Domain = ConfigKey.Domain("nettruyenww.com", "nettruyenx.com") override val configKeyDomain: ConfigKey.Domain = ConfigKey.Domain("nettruyenww.com", "nettruyenx.com")
override suspend fun getDetails(manga: Manga): Manga = coroutineScope { override suspend fun getDetails(manga: Manga): Manga = coroutineScope {
val fullUrl = manga.url.toAbsoluteUrl(domain) val fullUrl = manga.url.toAbsoluteUrl(domain)
val doc = webClient.httpGet(fullUrl).parseHtml() val doc = webClient.httpGet(fullUrl).parseHtml()
val chaptersDeferred = async { getChaps(doc) } val chaptersDeferred = async { getChapters(doc) }
val tagMap = getOrCreateTagMap() val tagMap = getOrCreateTagMap()
val tagsElement = doc.select("li.kind p.col-xs-8 a") val tagsElement = doc.select("li.kind p.col-xs-8 a")
val mangaTags = tagsElement.mapNotNullToSet { tagMap[it.text()] } val mangaTags = tagsElement.mapNotNullToSet { tagMap[it.text()] }
@ -44,35 +45,7 @@ internal class NetTruyen(context: MangaLoaderContext) :
}, },
tags = mangaTags, tags = mangaTags,
rating = doc.selectFirst("div.star input")?.attr("value")?.toFloatOrNull()?.div(5f) ?: RATING_UNKNOWN, rating = doc.selectFirst("div.star input")?.attr("value")?.toFloatOrNull()?.div(5f) ?: RATING_UNKNOWN,
chapters = chaptersDeferred.await(), chapters = chaptersDeferred.await().reversed(),
)
}
private suspend fun getChaps(doc: Document): List<MangaChapter> {
return doc.body().select(selectChapter).mapChapters(reversed = false) { i, li ->
val a = li.selectFirstOrThrow("a")
val href = a.attrAsRelativeUrl("href")
val dateText = li.selectFirst(selectDate)?.text()
val findHours = dateText?.contains(":")
val dateFormat = if (findHours == true) {
SimpleDateFormat("HH:mm dd/MM", sourceLocale)
} else {
SimpleDateFormat(datePattern, sourceLocale)
}
MangaChapter(
id = generateUid(href),
name = a.text(),
number = i + 1f,
volume = 0,
url = href,
uploadDate = parseChapterDate(
dateFormat,
dateText,
),
source = source,
scanlator = null,
branch = null,
) )
} }
}
} }

Loading…
Cancel
Save