From 30ca9fbfbcbbba2c400b7dd181004ee181ade22e Mon Sep 17 00:00:00 2001 From: nzoba <55888232+nzoba@users.noreply.github.com> Date: Tue, 26 Sep 2023 01:31:52 +0200 Subject: [PATCH] Webtoons: Fix cover and french status (#18157) * Webtoons: Fix cover * Webtoons: french status and author name --- .../webtoons/webtoons/src/WebtoonsFactory.kt | 11 ++++++++++- .../eu/kanade/tachiyomi/multisrc/webtoons/Webtoons.kt | 9 ++++++--- .../tachiyomi/multisrc/webtoons/WebtoonsGenerator.kt | 2 +- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/multisrc/overrides/webtoons/webtoons/src/WebtoonsFactory.kt b/multisrc/overrides/webtoons/webtoons/src/WebtoonsFactory.kt index 3d89e60a6..7fcb4c4d9 100644 --- a/multisrc/overrides/webtoons/webtoons/src/WebtoonsFactory.kt +++ b/multisrc/overrides/webtoons/webtoons/src/WebtoonsFactory.kt @@ -2,6 +2,7 @@ package eu.kanade.tachiyomi.extension.all.webtoons import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.SourceFactory +import eu.kanade.tachiyomi.source.model.SManga import java.text.SimpleDateFormat import java.util.GregorianCalendar import java.util.Locale @@ -49,7 +50,15 @@ class WebtoonsES : WebtoonsSrc("Webtoons.com", "https://www.webtoons.com", "es") return GregorianCalendar(year.toInt(), monthIndex, day.toInt()).time.time } } -class WebtoonsFR : WebtoonsSrc("Webtoons.com", "https://www.webtoons.com", "fr", dateFormat = SimpleDateFormat("d MMM yyyy", Locale.FRENCH)) + +class WebtoonsFR : WebtoonsSrc("Webtoons.com", "https://www.webtoons.com", "fr", dateFormat = SimpleDateFormat("d MMM yyyy", Locale.FRENCH)) { + override fun String.toStatus(): Int = when { + contains("NOUVEAU") -> SManga.ONGOING + contains("TERMINÉ") -> SManga.COMPLETED + else -> SManga.UNKNOWN + } +} + class WebtoonsZH : WebtoonsSrc("Webtoons.com", "https://www.webtoons.com", "zh-Hant", "zh-hant", "zh_TW", SimpleDateFormat("yyyy/MM/dd", Locale.TRADITIONAL_CHINESE)) { // Due to lang code getting more specific override val id: Long = 2959982438613576472 diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/webtoons/Webtoons.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/webtoons/Webtoons.kt index 686ca6ed8..6cc4487ee 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/webtoons/Webtoons.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/webtoons/Webtoons.kt @@ -196,7 +196,8 @@ open class Webtoons( open fun parseDetailsThumbnail(document: Document): String? { val picElement = document.select("#content > div.cont_box > div.detail_body") val discoverPic = document.select("#content > div.cont_box > div.detail_header > span.thmb") - return discoverPic.select("img").not("[alt='Representative image']").first()?.attr("src") ?: picElement.attr("style").substringAfter("url(")?.substringBeforeLast(")") + return picElement.attr("style").substringAfter("url(").substringBeforeLast(")") + .ifBlank { discoverPic.select("img").not("[alt='Representative image']").first()?.attr("src") } } override fun mangaDetailsParse(document: Document): SManga { @@ -206,7 +207,9 @@ open class Webtoons( val manga = SManga.create() manga.title = document.selectFirst("h1.subj, h3.subj")!!.text() manga.author = detailElement.select(".author:nth-of-type(1)").first()?.ownText() - manga.artist = detailElement.select(".author:nth-of-type(2)").first()?.ownText() ?: manga.author + ?: detailElement.select(".author_area").first()?.ownText() + manga.artist = detailElement.select(".author:nth-of-type(2)").first()?.ownText() + ?: detailElement.select(".author_area").first()?.ownText() ?: manga.author manga.genre = detailElement.select(".genre").joinToString(", ") { it.text() } manga.description = infoElement.select("p.summary").text() manga.status = infoElement.select("p.day_info").firstOrNull()?.text().orEmpty().toStatus() @@ -214,7 +217,7 @@ open class Webtoons( return manga } - private fun String.toStatus(): Int = when { + open fun String.toStatus(): Int = when { contains("UP") -> SManga.ONGOING contains("COMPLETED") -> SManga.COMPLETED else -> SManga.UNKNOWN diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/webtoons/WebtoonsGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/webtoons/WebtoonsGenerator.kt index d7a3ddf10..dfd0b5664 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/webtoons/WebtoonsGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/webtoons/WebtoonsGenerator.kt @@ -13,7 +13,7 @@ class WebtoonsGenerator : ThemeSourceGenerator { override val baseVersionCode: Int = 2 override val sources = listOf( - MultiLang("Webtoons.com", "https://www.webtoons.com", listOf("en", "fr", "es", "id", "th", "zh-Hant", "de"), className = "WebtoonsFactory", pkgName = "webtoons", overrideVersionCode = 38), + MultiLang("Webtoons.com", "https://www.webtoons.com", listOf("en", "fr", "es", "id", "th", "zh-Hant", "de"), className = "WebtoonsFactory", pkgName = "webtoons", overrideVersionCode = 39), SingleLang("Dongman Manhua", "https://www.dongmanmanhua.cn", "zh"), )