master
Koitharu 2 years ago
parent c2b2148190
commit f0f50a37b5
Signed by: Koitharu
GPG Key ID: 676DEE768C17A9D7

@ -147,7 +147,7 @@ internal class ExHentaiParser(
val tagsDiv = gLink.nextElementSibling() ?: gLink.parseFailed("tags div not found")
val mainTag = td2.selectFirst("div.cn")?.let { div ->
MangaTag(
title = div.text().toTitleCase(),
title = div.text().toTitleCase(Locale.ENGLISH),
key = tagIdByClass(div.classNames()) ?: return@let null,
source = source,
)

@ -186,7 +186,7 @@ internal class MangaPark(context: MangaLoaderContext) :
},
tags = tags,
isNsfw = nsfw,
chapters = doc.body().select("div.group.flex div.px-2").mapChapters { i, div ->
chapters = doc.body().select("div.group.flex div.px-2").mapChapters(reversed = true) { i, div ->
val a = div.selectFirstOrThrow("a")
val href = a.attrAsRelativeUrl("href")
val dateText = div.selectFirst("span[q:key=Ee_0]")?.text()
@ -247,22 +247,25 @@ internal class MangaPark(context: MangaLoaderContext) :
val doc = webClient.httpGet(chapter.url.toAbsoluteUrl(domain)).parseHtml()
val script = if (doc.selectFirst("script:containsData(comic-)") != null) {
doc.selectFirstOrThrow("script:containsData(comic-)").data()
.substringAfterLast("\"comic-").split("\",\"")
.substringAfterLast("\"comic-")
} else {
doc.selectFirstOrThrow("script:containsData(manga-)").data()
.substringAfterLast("\"manga-").split("\",\"")
.substringAfterLast("\"manga-")
}
return script.mapNotNull { url ->
if (!url.startsWith("https://")) {
return@mapNotNull null
} else {
MangaPage(
id = generateUid(url),
url = url,
preview = null,
source = source,
)
return Regex("\"(https?:.+?)\"")
.findAll(script)
.mapNotNullTo(ArrayList()) {
val url = it.groupValues.getOrNull(1) ?: return@mapNotNullTo null
if (url.contains("/comic/") || url.contains("/manga/")) {
MangaPage(
id = generateUid(url),
url = url,
preview = null,
source = source,
)
} else {
return@mapNotNullTo null
}
}
}
}
}

@ -8,7 +8,7 @@ import org.koitharu.kotatsu.parsers.util.*
@MangaSourceParser("ISEKAISCAN_EU", "IsekaiScan.to", "en")
internal class IsekaiScanEuParser(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.ISEKAISCAN_EU, "m.isekaiscan.to") {
MadaraParser(context, MangaSource.ISEKAISCAN_EU, "paragonscans.com") {
override val datePattern = "MM/dd/yyyy"
override val withoutAjax = true

@ -14,5 +14,7 @@ internal class Manganato(context: MangaLoaderContext) :
"chapmanganato.to",
"chapmanganato.com",
)
override val otherDomain = configKeyDomain.defaultValue
override val otherDomain = "chapmanganato.to"
override val selectPage = ".container-chapter-reader > img"
}

@ -12,14 +12,14 @@ import java.util.*
@MangaSourceParser("RIZZCOMIC", "RizzComic", "en")
internal class RizzComic(context: MangaLoaderContext) :
MangaReaderParser(context, MangaSource.RIZZCOMIC, "rizzcomic.com", pageSize = 50, searchPageSize = 20) {
MangaReaderParser(context, MangaSource.RIZZCOMIC, "rizzfables.com", pageSize = 50, searchPageSize = 20) {
override val datePattern = "dd MMM yyyy"
override val listUrl = "/series"
override val availableSortOrders: Set<SortOrder> = EnumSet.of(SortOrder.ALPHABETICAL)
override val availableStates: Set<MangaState> = emptySet()
override val isMultipleTagsSupported = false
override val isSearchSupported = false
override val isSearchSupported = true
override val isTagsExclusionSupported = false
// TODO Query created in json

@ -55,7 +55,7 @@ class FaviconParser(
private suspend fun parseManifest(url: String): List<Favicon> {
val json = webClient.httpGet(url).parseJson()
val icons = json.getJSONArray("icons")
val icons = json.optJSONArray("icons") ?: return emptyList()
return icons.mapJSON { jo ->
Favicon(
url = jo.getString("src").resolveLink(),

Loading…
Cancel
Save