From a24dfde1ba45a16ee05a12f24ee3a1ee52b9f687 Mon Sep 17 00:00:00 2001 From: devi Date: Sat, 9 Sep 2023 18:09:58 +0200 Subject: [PATCH] correction --- .../parsers/site/foolslide/FoolSlideParser.kt | 2 +- .../site/foolslide/en/AssortedScans.kt | 47 ++++++++++--------- .../parsers/site/foolslide/en/Seinagi.kt | 3 +- .../site/foolslide/es/Pzykosis666hFansub.kt | 2 +- .../site/foolslide/es/SeinagiAdulto.kt | 1 - .../parsers/site/madara/all/Manhwa18Cc.kt | 2 +- .../parsers/site/madara/en/InstaManhwa.kt | 4 +- .../parsers/site/madara/es/TmoManga.kt | 6 +-- .../parsers/site/madara/tr/TitanManga.kt | 4 +- .../parsers/site/madtheme/all/ManhuaScan.kt | 21 ++++----- .../site/mangareader/en/Constellarcomic.kt | 2 +- .../parsers/site/mangareader/es/TuManhwas.kt | 6 +-- .../kotatsu/parsers/site/mmrcms/ar/Onma.kt | 2 +- 13 files changed, 50 insertions(+), 52 deletions(-) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/foolslide/FoolSlideParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/foolslide/FoolSlideParser.kt index c7e7696a..6d937b78 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/foolslide/FoolSlideParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/foolslide/FoolSlideParser.kt @@ -114,7 +114,7 @@ internal abstract class FoolSlideParser( manga.copy( tags = emptySet(), - coverUrl = doc.selectFirst(".thumbnail img")?.src().orEmpty(),// for manga result on search + coverUrl = doc.selectFirst(".thumbnail img")?.src() ?: manga.coverUrl, description = desc, altTitle = null, author = author, diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/foolslide/en/AssortedScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/foolslide/en/AssortedScans.kt index bbcaa129..1e9152e2 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/foolslide/en/AssortedScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/foolslide/en/AssortedScans.kt @@ -8,7 +8,6 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.model.* import org.koitharu.kotatsu.parsers.site.foolslide.FoolSlideParser import org.koitharu.kotatsu.parsers.util.* -import java.util.ArrayList @MangaSourceParser("ASSORTEDSCANS", "AssortedScans", "en") @@ -28,13 +27,17 @@ internal class AssortedScans(context: MangaLoaderContext) : val doc = if (!query.isNullOrEmpty()) { + if (page > 1) { + return emptyList() + } + val url = buildString { - append("https://$domain/$searchUrl") + append("https://") + append(domain) + append('/') + append(searchUrl) append("?q=") append(query.urlEncoded()) - if (page > 1) { - return emptyList() - } } webClient.httpGet(url).parseHtml() } else { @@ -87,8 +90,7 @@ internal class AssortedScans(context: MangaLoaderContext) : val author = doc.getElementById("series-authors")?.selectFirst("div.author")?.text() val state = doc.getElementById("series-status")?.selectFirst("span")?.text() manga.copy( - tags = emptySet(), - coverUrl = doc.selectFirst(".cover")?.src().orEmpty(),// for manga result on search + coverUrl = doc.selectFirst(".cover")?.src() ?: manga.coverUrl, description = desc, altTitle = alt, author = author, @@ -120,22 +122,23 @@ internal class AssortedScans(context: MangaLoaderContext) : } override suspend fun getPages(chapter: MangaChapter): List { - val chapterUrl = chapter.url.toAbsoluteUrl(domain) - val docs = webClient.httpGet(chapterUrl).parseHtml() - val max = docs.selectFirstOrThrow(".curr-page input").attr("data-max").toInt() + 1 - val pages = ArrayList(max) - for (i in 1 until max) { - val pagesUrl = chapterUrl + i - val page = webClient.httpGet(pagesUrl).parseHtml().requireElementById("page-image").attr("src") - pages.add( - MangaPage( - id = generateUid(page), - url = page, - preview = null, - source = source, - ), + val doc = webClient.httpGet(chapter.url.toAbsoluteUrl(domain)).parseHtml() + return doc.body().select(".page-list .dropdown-list li a").map { a -> + val url = a.attr("href").toRelativeUrl(domain) + MangaPage( + id = generateUid(url), + url = url, + preview = null, + source = source, ) } - return pages } + + override suspend fun getPageUrl(page: MangaPage): String { + val doc = webClient.httpGet(page.url.toAbsoluteUrl(domain)).parseHtml() + val root = doc.body() + return root.requireElementById("page-image").attr("src") ?: doc.parseFailed("Page image not found") + } + + } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/foolslide/en/Seinagi.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/foolslide/en/Seinagi.kt index f6a19fb3..e365699a 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/foolslide/en/Seinagi.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/foolslide/en/Seinagi.kt @@ -39,8 +39,7 @@ internal class Seinagi(context: MangaLoaderContext) : } manga.copy( - tags = emptySet(), - coverUrl = doc.selectFirst(".thumbnail img")?.src().orEmpty(),// for manga result on search + coverUrl = doc.selectFirst(".thumbnail img")?.src() ?: manga.coverUrl, description = desc, altTitle = null, author = author, diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/foolslide/es/Pzykosis666hFansub.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/foolslide/es/Pzykosis666hFansub.kt index 8a2deaca..3a60241b 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/foolslide/es/Pzykosis666hFansub.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/foolslide/es/Pzykosis666hFansub.kt @@ -38,7 +38,7 @@ internal class Pzykosis666hFansub(context: MangaLoaderContext) : manga.copy( tags = emptySet(), - coverUrl = doc.selectFirst(".thumbnail img")?.src().orEmpty(),// for manga result on search + coverUrl = doc.selectFirst(".thumbnail img")?.src() ?: manga.coverUrl, description = desc, altTitle = null, author = author, diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/foolslide/es/SeinagiAdulto.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/foolslide/es/SeinagiAdulto.kt index 57440d4e..f159dee7 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/foolslide/es/SeinagiAdulto.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/foolslide/es/SeinagiAdulto.kt @@ -44,7 +44,6 @@ internal class SeinagiAdulto(context: MangaLoaderContext) : } manga.copy( - tags = emptySet(), coverUrl = doc.selectFirst(".thumbnail img")?.src().orEmpty(),// for manga result on search description = desc, altTitle = null, diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/all/Manhwa18Cc.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/all/Manhwa18Cc.kt index f1e3077a..a5cdab11 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/all/Manhwa18Cc.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/all/Manhwa18Cc.kt @@ -117,7 +117,7 @@ internal class Manhwa18Cc(context: MangaLoaderContext) : val doc = webClient.httpGet(fullUrl).parseHtml() val root = doc.body().selectFirstOrThrow(selectBodyPage) return root.select("img").map { img -> - val url = img.src().orEmpty() + val url = img.src() ?: img.parseFailed("Image src not found") MangaPage( id = generateUid(url), url = url, diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/InstaManhwa.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/InstaManhwa.kt index 90908052..7249c8fa 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/InstaManhwa.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/InstaManhwa.kt @@ -90,8 +90,8 @@ internal class InstaManhwa(context: MangaLoaderContext) : author = summary?.selectFirst(".mg_author")?.selectFirst("a")?.ownText(), state = when (summary?.selectFirst(".mg_status")?.selectFirst(".summary-content")?.ownText()?.trim() ?.lowercase()) { - "Ongoing" -> MangaState.ONGOING - "Completed " -> MangaState.FINISHED + "ongoing" -> MangaState.ONGOING + "completed " -> MangaState.FINISHED else -> null }, source = source, diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/TmoManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/TmoManga.kt index 4517d8df..8ec8ac63 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/TmoManga.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/TmoManga.kt @@ -65,7 +65,7 @@ internal class TmoManga(context: MangaLoaderContext) : val doc = webClient.httpGet(url).parseHtml() return doc.select("div.page-item-detail").map { div -> - val href = div.selectFirst("a")?.attrAsRelativeUrlOrNull("href") ?: div.parseFailed("Link not found") + val href = div.selectFirstOrThrow("a").attrAsRelativeUrl("href") Manga( id = generateUid(href), url = href, @@ -85,8 +85,8 @@ internal class TmoManga(context: MangaLoaderContext) : override suspend fun getChapters(manga: Manga, doc: Document): List { return doc.body().select(selectChapter).mapChapters(reversed = true) { i, li -> - val a = li.selectFirst("a") - val href = a?.attrAsRelativeUrlOrNull("href") ?: li.parseFailed("Link is missing") + val a = li.selectFirstOrThrow("a") + val href = a.attrAsRelativeUrl("href") val link = href + stylepage val name = a.selectFirst("p")?.text() ?: a.ownText() MangaChapter( diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/TitanManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/TitanManga.kt index 754552a4..cf71a49a 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/TitanManga.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/TitanManga.kt @@ -18,8 +18,8 @@ internal class TitanManga(context: MangaLoaderContext) : val url = mangaUrl.toAbsoluteUrl(domain).removeSuffix('/') + "/ajax/chapters/" val doc = webClient.httpPost(url, emptyMap()).parseHtml() return doc.select(selectChapter).mapChapters(reversed = true) { i, li -> - val a = li.selectFirst("a") - val href = a?.attrAsRelativeUrlOrNull("href") ?: li.parseFailed("Link is missing") + val a = li.selectFirstOrThrow("a") + val href = a.attrAsRelativeUrl("href") val link = href + stylepage val name = a.selectFirst("p")?.text() ?: a.ownText() MangaChapter( diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madtheme/all/ManhuaScan.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madtheme/all/ManhuaScan.kt index b0f75f0d..8c0876a3 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madtheme/all/ManhuaScan.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madtheme/all/ManhuaScan.kt @@ -23,7 +23,9 @@ internal class ManhuaScan(context: MangaLoaderContext) : val url = buildString { append("https://") append(domain) - append("/$listUrl?sort=") + append('/') + append(listUrl) + append("?sort=") when (sortOrder) { SortOrder.POPULARITY -> append("views") SortOrder.UPDATED -> append("updated_at") @@ -84,19 +86,14 @@ internal class ManhuaScan(context: MangaLoaderContext) : val script = docs.selectFirstOrThrow("script:containsData(var chapImages)") val images = script.data().substringAfter("= \"").substringBefore("\";").split(",") - - val pages = ArrayList() - images.map { - pages.add( - MangaPage( - id = generateUid(it), - url = it, - preview = null, - source = source, - ), + return images.map { + MangaPage( + id = generateUid(it), + url = it, + preview = null, + source = source, ) } - return pages } } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Constellarcomic.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Constellarcomic.kt index d582c275..deb02149 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Constellarcomic.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Constellarcomic.kt @@ -18,7 +18,7 @@ internal class Constellarcomic(context: MangaLoaderContext) : val url = element.selectFirst("a")?.attrAsRelativeUrl("href") ?: return@mapChapters null MangaChapter( id = generateUid(url), - name = element.selectFirst(".chapternum")?.text() ?: "Chapter ${index + 1}", + name = element.selectFirst(".chapternum")?.textOrNull() ?: "Chapter ${index + 1}", url = url, number = index + 1, scanlator = null, diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/TuManhwas.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/TuManhwas.kt index fae9588e..d9fc7250 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/TuManhwas.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/TuManhwas.kt @@ -57,7 +57,7 @@ internal class TuManhwas(context: MangaLoaderContext) : val url = element.selectFirst("a")?.attrAsRelativeUrl("href") ?: return@mapChapters null MangaChapter( id = generateUid(url), - name = element.selectFirst(".chapternum")?.text() ?: "Chapter ${index + 1}", + name = element.selectFirst(".chapternum")?.textOrNull() ?: "Chapter ${index + 1}", url = url, number = index + 1, scanlator = null, @@ -77,9 +77,9 @@ internal class TuManhwas(context: MangaLoaderContext) : val stateSelect = docs.selectFirst(".tsinfo div:contains(Estado)") val state = stateSelect?.lastElementChild() val mangaState = state?.let { - when (it.text()) { + when (it.text().lowercase()) { "publishing" -> MangaState.ONGOING - "Terminado" -> MangaState.FINISHED + "terminado" -> MangaState.FINISHED else -> null } } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mmrcms/ar/Onma.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mmrcms/ar/Onma.kt index bf20b1df..2ffee433 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mmrcms/ar/Onma.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mmrcms/ar/Onma.kt @@ -72,7 +72,7 @@ internal class Onma(context: MangaLoaderContext) : return doc.select("div.manga-item").map { div -> val href = div.selectFirstOrThrow("a").attrAsRelativeUrl("href") - val deeplink = href.substringAfterLast("/") + val deeplink = href.substringAfterLast('/') Manga( id = generateUid(href), url = href,