Webtoons: Fix cover and french status (#18157)

* Webtoons: Fix cover

* Webtoons: french status and author name
This commit is contained in:
nzoba 2023-09-26 01:31:52 +02:00 committed by GitHub
parent 5e4fe0ef68
commit 30ca9fbfbc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 5 deletions

View File

@ -2,6 +2,7 @@ package eu.kanade.tachiyomi.extension.all.webtoons
import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.Source
import eu.kanade.tachiyomi.source.SourceFactory import eu.kanade.tachiyomi.source.SourceFactory
import eu.kanade.tachiyomi.source.model.SManga
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.GregorianCalendar import java.util.GregorianCalendar
import java.util.Locale 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 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)) { 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 // Due to lang code getting more specific
override val id: Long = 2959982438613576472 override val id: Long = 2959982438613576472

View File

@ -196,7 +196,8 @@ open class Webtoons(
open fun parseDetailsThumbnail(document: Document): String? { open fun parseDetailsThumbnail(document: Document): String? {
val picElement = document.select("#content > div.cont_box > div.detail_body") val picElement = document.select("#content > div.cont_box > div.detail_body")
val discoverPic = document.select("#content > div.cont_box > div.detail_header > span.thmb") 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 { override fun mangaDetailsParse(document: Document): SManga {
@ -206,7 +207,9 @@ open class Webtoons(
val manga = SManga.create() val manga = SManga.create()
manga.title = document.selectFirst("h1.subj, h3.subj")!!.text() manga.title = document.selectFirst("h1.subj, h3.subj")!!.text()
manga.author = detailElement.select(".author:nth-of-type(1)").first()?.ownText() 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.genre = detailElement.select(".genre").joinToString(", ") { it.text() }
manga.description = infoElement.select("p.summary").text() manga.description = infoElement.select("p.summary").text()
manga.status = infoElement.select("p.day_info").firstOrNull()?.text().orEmpty().toStatus() manga.status = infoElement.select("p.day_info").firstOrNull()?.text().orEmpty().toStatus()
@ -214,7 +217,7 @@ open class Webtoons(
return manga return manga
} }
private fun String.toStatus(): Int = when { open fun String.toStatus(): Int = when {
contains("UP") -> SManga.ONGOING contains("UP") -> SManga.ONGOING
contains("COMPLETED") -> SManga.COMPLETED contains("COMPLETED") -> SManga.COMPLETED
else -> SManga.UNKNOWN else -> SManga.UNKNOWN

View File

@ -13,7 +13,7 @@ class WebtoonsGenerator : ThemeSourceGenerator {
override val baseVersionCode: Int = 2 override val baseVersionCode: Int = 2
override val sources = listOf( 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"), SingleLang("Dongman Manhua", "https://www.dongmanmanhua.cn", "zh"),
) )