From 76ff5c90906c5c761ded22046c79c9fe02dec44c Mon Sep 17 00:00:00 2001
From: Arraiment <76941874+Arraiment@users.noreply.github.com>
Date: Mon, 9 Aug 2021 20:50:05 +0800
Subject: [PATCH] Override manga details parsing (#8493)

---
 .../madara/manhwanelo/src/ManhwaNelo.kt       | 49 +++++++++++++++++++
 .../multisrc/madara/MadaraGenerator.kt        |  2 +-
 2 files changed, 50 insertions(+), 1 deletion(-)
 create mode 100644 multisrc/overrides/madara/manhwanelo/src/ManhwaNelo.kt

diff --git a/multisrc/overrides/madara/manhwanelo/src/ManhwaNelo.kt b/multisrc/overrides/madara/manhwanelo/src/ManhwaNelo.kt
new file mode 100644
index 000000000..79ea60713
--- /dev/null
+++ b/multisrc/overrides/madara/manhwanelo/src/ManhwaNelo.kt
@@ -0,0 +1,49 @@
+package eu.kanade.tachiyomi.extension.en.manhwanelo
+
+import eu.kanade.tachiyomi.multisrc.madara.Madara
+import eu.kanade.tachiyomi.source.model.SManga
+import org.jsoup.nodes.Document
+import java.util.Locale
+
+class ManhwaNelo : Madara("ManhwaNelo", "https://manhwanelo.com", "en") {
+
+    override fun mangaDetailsParse(document: Document): SManga {
+        val manga = SManga.create()
+        with(document) {
+            select("div.detailsingle h1").first()?.let {
+                manga.title = it.ownText()
+            }
+            select("div.author a").eachText().filter {
+                it.notUpdating()
+            }.joinToString().takeIf { it.isNotBlank() }?.let {
+                manga.author = it
+                // Site does not separate artist and author
+                manga.artist = manga.author
+            }
+
+            select("div.description-summary div.summary__content").let {
+                if (it.select("p").text().isNotEmpty()) {
+                    manga.description = it.select("p").joinToString(separator = "\n\n") { p ->
+                        p.text().replace("<br>", "\n")
+                    }
+                } else {
+                    manga.description = it.text()
+                }
+            }
+            select("div.summary_image img").first()?.let {
+                manga.thumbnail_url = imageFromElement(it)
+            }
+            select("div.status p").let {
+                manga.status = when (it.text().substringAfter("| ")) {
+                    "end" -> SManga.COMPLETED
+                    "on-going" -> SManga.ONGOING
+                    else -> SManga.UNKNOWN
+                }
+            }
+            manga.genre = select("div.genres a")
+                .joinToString(", ") { element -> element.text().toLowerCase(Locale.ROOT) }
+
+            return manga
+        }
+    }
+}
diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt
index fe0aedd6f..b136fd367 100644
--- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt
+++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt
@@ -256,7 +256,7 @@ class MadaraGenerator : ThemeSourceGenerator {
         SingleLang("Manhwa.biz", "https://manhwa.biz", "en", isNsfw = true, className = "Manhwabiz"),
         SingleLang("ManhwaBookShelf", "https://manhwabookshelf.com", "en"),
         SingleLang("Manhwafull", "https://manhwafull.com", "en"),
-        SingleLang("ManhwaNelo", "https://manhwanelo.com", "en"),
+        SingleLang("ManhwaNelo", "https://manhwanelo.com", "en", overrideVersionCode = 1),
         SingleLang("ManhwaPool", "https://manhwapool.com", "en"),
         SingleLang("Manhwatop", "https://manhwatop.com", "en", overrideVersionCode = 1),
         SingleLang("Manhwahentai.me", "https://manhwahentai.me", "en", className = "ManhwahentaiMe", isNsfw = true, overrideVersionCode = 1),