From a62662d116fbb1c2bdac65c1a79c90781b9d0388 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Wed, 19 Oct 2022 13:37:49 +0300 Subject: [PATCH] Fix some madara parsers --- .../kotatsu/parsers/site/madara/MadaraParser.kt | 9 ++++----- .../parsers/site/madara/MangalinkParser.kt | 15 --------------- .../koitharu/kotatsu/parsers/MangaParserTest.kt | 1 + 3 files changed, 5 insertions(+), 20 deletions(-) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/MadaraParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/MadaraParser.kt index c26340af..d69aee6e 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/MadaraParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/MadaraParser.kt @@ -57,10 +57,12 @@ internal abstract class MadaraParser( "https://${getDomain()}/wp-admin/admin-ajax.php", payload, ).parseHtml() - return doc.select("div.row.c-tabs-item__content").map { div -> + return doc.select("div.row.c-tabs-item__content").ifEmpty { + doc.select("div.page-item-detail.manga") + }.map { div -> val href = div.selectFirst("a")?.attrAsRelativeUrlOrNull("href") ?: div.parseFailed("Link not found") - val summary = div.selectFirst(".tab-summary") + val summary = div.selectFirst(".tab-summary") ?: div.selectFirst(".item-summary") Manga( id = generateUid(href), url = href, @@ -424,9 +426,6 @@ internal abstract class MadaraParser( @MangaSourceParser("X2MANGA", "X2Manga", "en") class X2Manga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.X2MANGA, "x2manga.com") - @MangaSourceParser("VINLOAD", "VinLoad", "en") - class VinLoad(context: MangaLoaderContext) : MadaraParser(context, MangaSource.VINLOAD, "vinload.com") - @MangaSourceParser("S2MANGA", "S2Manga", "en") class S2Manga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.S2MANGA, "s2manga.com") diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/MangalinkParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/MangalinkParser.kt index 4045728f..6303c813 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/MangalinkParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/MangalinkParser.kt @@ -8,7 +8,6 @@ import org.koitharu.kotatsu.parsers.exception.ParseException import org.koitharu.kotatsu.parsers.model.Manga import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaTag -import org.koitharu.kotatsu.parsers.model.SortOrder import org.koitharu.kotatsu.parsers.util.mapNotNullToSet import org.koitharu.kotatsu.parsers.util.parseHtml import org.koitharu.kotatsu.parsers.util.toAbsoluteUrl @@ -18,20 +17,6 @@ import org.koitharu.kotatsu.parsers.util.toTitleCase internal class MangalinkParser(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGALINK_AR, "mangalink.online") { - override suspend fun getListPage( - page: Int, - query: String?, - tags: Set?, - sortOrder: SortOrder, - ): List { - val res = super.getListPage(page, query, tags, sortOrder) - val oldDomain = getDomain() - val newDomain = "cdn.$oldDomain" - return res.map { x -> - x.copy(coverUrl = x.coverUrl.replace(oldDomain, newDomain)) - } - } - override suspend fun getDetails(manga: Manga): Manga = coroutineScope { val fullUrl = manga.url.toAbsoluteUrl(getDomain()) val doc = context.httpGet(fullUrl).parseHtml() diff --git a/src/test/kotlin/org/koitharu/kotatsu/parsers/MangaParserTest.kt b/src/test/kotlin/org/koitharu/kotatsu/parsers/MangaParserTest.kt index acffcc37..ea1f85eb 100644 --- a/src/test/kotlin/org/koitharu/kotatsu/parsers/MangaParserTest.kt +++ b/src/test/kotlin/org/koitharu/kotatsu/parsers/MangaParserTest.kt @@ -52,6 +52,7 @@ internal class MangaParserTest { val query = subject.title check(query.isNotBlank()) { "Manga title '$query' is blank" } val list = parser.getList(0, query) + assert(list.isNotEmpty()) { "Empty search results by \"$query\"" } assert(list.singleOrNull { it.url == subject.url && it.id == subject.id } != null) { "Single subject '${subject.title} (${subject.publicUrl})' not found in search results" }