From 4fdc02de35d7a2a7d50b3e79540453eb6fbdeda7 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Tue, 19 Mar 2024 11:37:27 +0200 Subject: [PATCH] MangaOVH: Fix handling unexisting branches --- .../koitharu/kotatsu/parsers/site/ru/MangaOvhParser.kt | 6 ++++-- .../org/koitharu/kotatsu/parsers/MangaParserTest.kt | 9 --------- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/MangaOvhParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/MangaOvhParser.kt index 81eeeb35..0aa991f0 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/MangaOvhParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/MangaOvhParser.kt @@ -216,12 +216,14 @@ class MangaOvhParser(context: MangaLoaderContext) : PagedMangaParser(context, Ma }.reversed() } - private suspend fun getBranchName(id: String): String? { + private suspend fun getBranchName(id: String): String? = runCatchingCancellable { val url = urlBuilder("api") .addPathSegment("branch") .addPathSegment(id) val json = webClient.httpGet(url.build()).parseJson() - return json.getJSONArray("publishers").mapJSONToSet { it.getStringOrNull("name") }.firstOrNull() + json.getJSONArray("publishers").mapJSONToSet { it.getStringOrNull("name") }.firstOrNull() + }.getOrElse { + id.substringBefore('-') } private fun String.toMangaState() = when (this.uppercase(Locale.ROOT)) { diff --git a/src/test/kotlin/org/koitharu/kotatsu/parsers/MangaParserTest.kt b/src/test/kotlin/org/koitharu/kotatsu/parsers/MangaParserTest.kt index e5d47a1c..5590e18a 100644 --- a/src/test/kotlin/org/koitharu/kotatsu/parsers/MangaParserTest.kt +++ b/src/test/kotlin/org/koitharu/kotatsu/parsers/MangaParserTest.kt @@ -3,7 +3,6 @@ package org.koitharu.kotatsu.parsers import kotlinx.coroutines.test.runTest import okhttp3.HttpUrl import org.junit.jupiter.api.Disabled -import org.junit.jupiter.api.Test import org.junit.jupiter.params.ParameterizedTest import org.koitharu.kotatsu.parsers.model.* import org.koitharu.kotatsu.parsers.util.domain @@ -19,14 +18,6 @@ internal class MangaParserTest { private val context = MangaLoaderContextMock private val timeout = 2.minutes - @Test - fun singleTest() = runTest { - val manga = mangaOf(MangaSource.READMANGA_RU, "https://readmanga.live/podniatie_urovnia_v_odinochku__A5e4e") - val parser = context.newParserInstance(manga.source) - val details = parser.getDetails(manga) - assert(!details.chapters.isNullOrEmpty()) - } - @ParameterizedTest(name = "{index}|list|{0}") @MangaSources fun list(source: MangaSource) = runTest(timeout = timeout) {