From 26d951bc20b461768ba43843c7a68ceded28d8f9 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Fri, 8 Jul 2022 11:58:47 +0300 Subject: [PATCH] [Madara5] Fix cover urls --- .../parsers/site/{ => madara}/Madara5Parser.kt | 14 ++++++++++---- .../parsers/site/{ => madara}/MadaraParser.kt | 4 ++-- .../kotatsu/parsers/MangaLoaderContextMock.kt | 9 --------- 3 files changed, 12 insertions(+), 15 deletions(-) rename src/main/kotlin/org/koitharu/kotatsu/parsers/site/{ => madara}/Madara5Parser.kt (95%) rename src/main/kotlin/org/koitharu/kotatsu/parsers/site/{ => madara}/MadaraParser.kt (99%) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/Madara5Parser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/Madara5Parser.kt similarity index 95% rename from src/main/kotlin/org/koitharu/kotatsu/parsers/site/Madara5Parser.kt rename to src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/Madara5Parser.kt index aeb24a822..18fb7c202 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/Madara5Parser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/Madara5Parser.kt @@ -1,4 +1,4 @@ -package org.koitharu.kotatsu.parsers.site +package org.koitharu.kotatsu.parsers.site.madara import androidx.collection.arraySetOf import org.jsoup.nodes.Element @@ -64,7 +64,7 @@ abstract class Madara5Parser @InternalParsersApi constructor( .firstOrNull()?.tableValue()?.text()?.trim(), url = href, publicUrl = a.attrAsAbsoluteUrl("href"), - coverUrl = img.attrAsAbsoluteUrl("src"), + coverUrl = img.src().orEmpty(), author = postContent.getElementsContainingOwnText("Author") .firstOrNull()?.tableValue()?.text()?.trim(), state = postContent.getElementsContainingOwnText("Status") @@ -147,6 +147,12 @@ abstract class Madara5Parser @InternalParsersApi constructor( return tags.any { it.key in nsfwTags } } + private fun Element.src(): String? { + return absUrl("data-src").ifEmpty { + absUrl("src") + }.takeUnless { it.isEmpty() } + } + private fun Element.tableValue(): Element { for (p in parents()) { val children = p.children() @@ -170,9 +176,9 @@ abstract class Madara5Parser @InternalParsersApi constructor( source = source, ) - @MangaSourceParser("MANGAOWLS", "MangaOwls", "en") + @MangaSourceParser("MANGAOWLS", "BeautyManga", "en") class MangaOwls(context: MangaLoaderContext) : Madara5Parser(context, MangaSource.MANGAOWLS, "beautymanga.com") { override fun getFaviconUrl() = "http://${getDomain()}/frontend/images/favico.png" } -} +} \ No newline at end of file diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/MadaraParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/MadaraParser.kt similarity index 99% rename from src/main/kotlin/org/koitharu/kotatsu/parsers/site/MadaraParser.kt rename to src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/MadaraParser.kt index c469188bd..f2b885c2e 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/MadaraParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/MadaraParser.kt @@ -1,4 +1,4 @@ -package org.koitharu.kotatsu.parsers.site +package org.koitharu.kotatsu.parsers.site.madara import org.jsoup.nodes.Element import org.koitharu.kotatsu.parsers.MangaLoaderContext @@ -525,4 +525,4 @@ internal abstract class MadaraParser( @MangaSourceParser("ZINMANGA", "ZINMANGA", "en") class Zinmanga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.ZINMANGA, "zinmanga.com") -} +} \ No newline at end of file diff --git a/src/test/kotlin/org/koitharu/kotatsu/parsers/MangaLoaderContextMock.kt b/src/test/kotlin/org/koitharu/kotatsu/parsers/MangaLoaderContextMock.kt index cd687e6a1..60357aa43 100644 --- a/src/test/kotlin/org/koitharu/kotatsu/parsers/MangaLoaderContextMock.kt +++ b/src/test/kotlin/org/koitharu/kotatsu/parsers/MangaLoaderContextMock.kt @@ -8,8 +8,6 @@ import org.koitharu.kotatsu.parsers.config.MangaSourceConfig import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.util.await import java.util.concurrent.TimeUnit -import javax.net.ssl.HostnameVerifier -import javax.net.ssl.SSLSession internal class MangaLoaderContextMock : MangaLoaderContext() { @@ -28,7 +26,6 @@ internal class MangaLoaderContextMock : MangaLoaderContext() { .cookieJar(cookieJar) .addInterceptor(UserAgentInterceptor(userAgent)) .addInterceptor(CloudFlareInterceptor()) - .hostnameVerifier(ConsumeAllVerifier()) .connectTimeout(20, TimeUnit.SECONDS) .readTimeout(60, TimeUnit.SECONDS) .writeTimeout(20, TimeUnit.SECONDS) @@ -64,10 +61,4 @@ internal class MangaLoaderContextMock : MangaLoaderContext() { cookieJar.loadFromStream(it) } ?: println("No cookies loaded!") } - - private class ConsumeAllVerifier : HostnameVerifier { - override fun verify(hostname: String?, session: SSLSession?): Boolean { - return true - } - } } \ No newline at end of file