diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/rulib/MangaLibParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/rulib/MangaLibParser.kt index 06a7514b..334538df 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/rulib/MangaLibParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/rulib/MangaLibParser.kt @@ -2,6 +2,8 @@ package org.koitharu.kotatsu.parsers.site.ru.rulib import androidx.collection.ArraySet import kotlinx.coroutines.withTimeoutOrNull +import okhttp3.Response +import okhttp3.internal.headersContentLength import org.json.JSONArray import org.json.JSONObject import org.jsoup.nodes.Document @@ -30,7 +32,7 @@ internal open class MangaLibParser( override val configKeyDomain = ConfigKey.Domain("mangalib.me") override val authUrl: String - get() = "https://${domain}/login" + get() = "https://$domain/login" override val sortOrders: Set = EnumSet.of( SortOrder.RATING, @@ -163,7 +165,9 @@ internal open class MangaLibParser( key = href.substringAfterLast('='), source = source, ) - } else null + } else { + null + } } ?: manga.tags, isNsfw = isNsfw(doc), description = info?.selectFirst("div.media-description__text")?.html(), @@ -226,7 +230,7 @@ internal open class MangaLibParser( } override suspend fun getTags(): Set { - val url = "https://${domain}/manga-list" + val url = "https://$domain/manga-list" val doc = webClient.httpGet(url).parseHtml() val scripts = doc.body().select("script") for (script in scripts) { @@ -266,7 +270,7 @@ internal open class MangaLibParser( private suspend fun tryHeadImage(url: String): Boolean = runCatchingCancellable { withTimeoutOrNull(3_000) { webClient.httpHead(url).use { response -> - response.isSuccessful && response.mimeType?.startsWith("image/") == true + response.isValidImage() } } ?: false }.getOrDefault(false) @@ -335,6 +339,10 @@ internal open class MangaLibParser( return result } + private fun Response.isValidImage(): Boolean { + return isSuccessful && mimeType?.startsWith("image/") == true && headersContentLength() >= 1024L + } + @MangaSourceParser("MANGALIB", "MangaLib", "ru") class Impl(context: MangaLoaderContext) : MangaLibParser(context, MangaSource.MANGALIB)