Refactor and fixes

master
Koitharu 2 years ago
parent 6f9180545b
commit 5c55d65eb3
Signed by: Koitharu
GPG Key ID: 676DEE768C17A9D7

@ -17,6 +17,7 @@ internal class NudeMoonParser(
) : MangaParser(context, MangaParserSource.NUDEMOON), MangaParserAuthProvider { ) : MangaParser(context, MangaParserSource.NUDEMOON), MangaParserAuthProvider {
override val configKeyDomain = ConfigKey.Domain( override val configKeyDomain = ConfigKey.Domain(
"b.nude-moon.fun",
"x.nude-moon.fun", "x.nude-moon.fun",
"nude-moon.org", "nude-moon.org",
"nude-moon.net", "nude-moon.net",

@ -1,15 +1,15 @@
package org.koitharu.kotatsu.parsers.site.wpcomics.vi package org.koitharu.kotatsu.parsers.site.wpcomics.vi
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.config.ConfigKey
import org.koitharu.kotatsu.parsers.model.* import org.koitharu.kotatsu.parsers.model.*
import org.koitharu.kotatsu.parsers.network.UserAgents
import org.koitharu.kotatsu.parsers.site.wpcomics.WpComicsParser import org.koitharu.kotatsu.parsers.site.wpcomics.WpComicsParser
import org.koitharu.kotatsu.parsers.util.* import org.koitharu.kotatsu.parsers.util.*
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import org.koitharu.kotatsu.parsers.config.ConfigKey
import org.koitharu.kotatsu.parsers.network.UserAgents
import org.koitharu.kotatsu.parsers.Broken
@Broken @Broken
@MangaSourceParser("DOCTRUYEN3Q", "DocTruyen3Q", "vi") @MangaSourceParser("DOCTRUYEN3Q", "DocTruyen3Q", "vi")
@ -46,7 +46,7 @@ internal class DocTruyen3Q(context: MangaLoaderContext) :
private fun parseMangaList(doc: Document): List<Manga> { private fun parseMangaList(doc: Document): List<Manga> {
return doc.select("div.list-story-item").map { div -> return doc.select("div.list-story-item").map { div ->
val href = div.selectFirst("h3.title-book a")?.attrAsRelativeUrl("href") ?: div.parseFailed("Manga link not found") val href = div.selectFirstOrThrow("h3.title-book a").attrAsRelativeUrl("href")
Manga( Manga(
id = generateUid(href), id = generateUid(href),
url = href, url = href,
@ -67,10 +67,10 @@ internal class DocTruyen3Q(context: MangaLoaderContext) :
override suspend fun getDetails(manga: Manga): Manga { override suspend fun getDetails(manga: Manga): Manga {
val doc = webClient.httpGet(manga.url.toAbsoluteUrl(domain)).parseHtml() val doc = webClient.httpGet(manga.url.toAbsoluteUrl(domain)).parseHtml()
return manga.copy( return manga.copy(
tags = doc.select("li.kind a").mapNotNullToSet { a -> tags = doc.select("li.kind a").mapToSet { a ->
MangaTag( MangaTag(
key = a.attr("href").substringAfterLast('/'), key = a.attr("href").substringAfterLast('/'),
title = a.text().trim(), title = a.text().toTitleCase(sourceLocale),
source = source, source = source,
) )
}, },

@ -1,18 +1,17 @@
package org.koitharu.kotatsu.parsers.site.wpcomics.vi package org.koitharu.kotatsu.parsers.site.wpcomics.vi
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.config.ConfigKey
import org.koitharu.kotatsu.parsers.model.MangaChapter import org.koitharu.kotatsu.parsers.model.MangaChapter
import org.koitharu.kotatsu.parsers.model.MangaPage import org.koitharu.kotatsu.parsers.model.MangaPage
import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.network.UserAgents
import org.koitharu.kotatsu.parsers.site.wpcomics.WpComicsParser import org.koitharu.kotatsu.parsers.site.wpcomics.WpComicsParser
import org.koitharu.kotatsu.parsers.util.* import org.koitharu.kotatsu.parsers.util.*
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.*
import org.koitharu.kotatsu.parsers.config.ConfigKey
import org.koitharu.kotatsu.parsers.network.UserAgents
import org.koitharu.kotatsu.parsers.Broken
@Broken @Broken
@MangaSourceParser("TOPTRUYENVIET", "TopTruyen.pro", "vi") @MangaSourceParser("TOPTRUYENVIET", "TopTruyen.pro", "vi")
@ -32,19 +31,16 @@ internal class TopTruyenViet(context: MangaLoaderContext) :
override val datePattern = "dd/MM/yyyy" override val datePattern = "dd/MM/yyyy"
override suspend fun getChapters(doc: Document): List<MangaChapter> { override suspend fun getChapters(doc: Document): List<MangaChapter> {
val dateFormat = SimpleDateFormat(datePattern, sourceLocale)
return doc.select(selectChapter).mapChapters(reversed = true) { i, a -> return doc.select(selectChapter).mapChapters(reversed = true) { i, a ->
val href = a.attrAsRelativeUrl("href") val href = a.attrAsRelativeUrl("href")
val dateText = a.selectFirst(selectDate)?.text() val dateText = a.selectFirst(selectDate)?.text()
val dateFormat = SimpleDateFormat(datePattern, sourceLocale)
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = a.text(), name = a.text(),
number = i + 1f, number = i + 1f,
url = href, url = href,
uploadDate = parseChapterDate( uploadDate = parseChapterDate(dateFormat, dateText),
dateFormat,
dateText,
),
source = source, source = source,
scanlator = null, scanlator = null,
branch = null, branch = null,

Loading…
Cancel
Save