From 72cd6fbadf87e5c8832d301df257b6d6cd318ed9 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Sat, 23 Apr 2022 18:09:06 +0300 Subject: [PATCH] [Madara] Fix covers and tags --- .../kotatsu/parsers/site/MadaraParser.kt | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/MadaraParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/MadaraParser.kt index 783cb409..b5a9dbad 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/MadaraParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/MadaraParser.kt @@ -1,5 +1,6 @@ package org.koitharu.kotatsu.parsers.site +import org.jsoup.nodes.Element import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaParser import org.koitharu.kotatsu.parsers.MangaSourceParser @@ -60,7 +61,7 @@ internal abstract class MadaraParser( id = generateUid(href), url = href, publicUrl = href.inContextOf(div), - coverUrl = div.selectFirst("img")?.absUrl("data-src").orEmpty(), + coverUrl = div.selectFirst("img")?.src().orEmpty(), title = summary?.selectFirst("h3")?.text().orEmpty(), altTitle = null, rating = div.selectFirst("span.total_votes")?.ownText() @@ -106,7 +107,7 @@ internal abstract class MadaraParser( } MangaTag( key = href, - title = a.text().toTitleCase(), + title = a.ownText().trim().toTitleCase(), source = source, ) } @@ -167,9 +168,7 @@ internal abstract class MadaraParser( ?: throw ParseException("Root not found") return root.select("div.page-break").map { div -> val img = div.selectFirst("img") ?: parseFailed("Page image not found") - val url = img.relUrl("data-src").ifEmpty { - img.relUrl("src") - } + val url = img.src()?.toRelativeUrl(getDomain()) ?: parseFailed("Image src not found") MangaPage( id = generateUid(url), url = url, @@ -266,6 +265,12 @@ internal abstract class MadaraParser( } } + private fun Element.src(): String? { + return absUrl("data-src").ifEmpty { + absUrl("src") + }.takeUnless { it.isEmpty() } + } + private fun createRequestTemplate() = ( "action=madara_load_more&page=1&template=madara-core%2Fcontent%2Fcontent-search&vars%5Bs%5D=&vars%5B" + @@ -312,7 +317,9 @@ internal abstract class MadaraParser( MadaraParser(context, MangaSource.MANGA_MANHUA, "mangamanhua.online") @MangaSourceParser("MANGA_247", "247MANGA", "en") - class Manga247(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGA_247, "247manga.com") + class Manga247(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGA_247, "247manga.com") { + override val tagPrefix = "manhwa-genre/" + } @MangaSourceParser("MANGA_365", "365Manga", "en") class Manga365(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGA_365, "365manga.com")