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 aeb24a82..18fb7c20 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 c469188b..f2b885c2 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 cd687e6a..60357aa4 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