MangaOVH: Parsing related manga

Koitharu 2 years ago
parent 4fdc02de35
commit 639895f511
Signed by: Koitharu
GPG Key ID: 676DEE768C17A9D7

@ -106,22 +106,7 @@ class MangaOvhParser(context: MangaLoaderContext) : PagedMangaParser(context, Ma
null -> Unit
}
val ja = webClient.httpGet(url.build()).parseJsonArray()
return ja.mapJSON { jo ->
Manga(
id = generateUid(jo.getString("id")),
title = jo.getJSONObject("name").getString("ru"),
altTitle = jo.getJSONObject("name").getStringOrNull("en"),
url = jo.getString("id"),
publicUrl = "https://$domain/manga/${jo.getString("slug")}",
rating = jo.getFloatOrDefault("averageRating", -10f) / 10f,
isNsfw = jo.getStringOrNull("contentStatus").isNsfw(),
coverUrl = jo.getString("poster"),
tags = setOf(),
state = jo.getStringOrNull("status")?.toMangaState(),
author = null,
source = source,
)
}
return ja.mapJSON { jo -> jo.toManga() }
}
override suspend fun getDetails(manga: Manga): Manga = coroutineScope {
@ -185,6 +170,15 @@ class MangaOvhParser(context: MangaLoaderContext) : PagedMangaParser(context, Ma
}
}
override suspend fun getRelatedManga(seed: Manga): List<Manga> {
val url = urlBuilder("api")
.addPathSegment("book")
.addPathSegment(seed.url)
.addPathSegment("related")
val ja = webClient.httpGet(url.build()).parseJsonArray()
return ja.mapJSON { jo -> jo.toManga() }
}
override suspend fun getPageUrl(page: MangaPage): String = page.url
private suspend fun getChapters(mangaId: String): List<MangaChapter> {
@ -242,4 +236,19 @@ class MangaOvhParser(context: MangaLoaderContext) : PagedMangaParser(context, Ma
key = getString("slug"),
source = source,
)
private fun JSONObject.toManga() = Manga(
id = generateUid(getString("id")),
title = getJSONObject("name").getString("ru"),
altTitle = getJSONObject("name").getStringOrNull("en"),
url = getString("id"),
publicUrl = "https://$domain/manga/${getString("slug")}",
rating = getFloatOrDefault("averageRating", -10f) / 10f,
isNsfw = getStringOrNull("contentStatus").isNsfw(),
coverUrl = getString("poster"),
tags = setOf(),
state = getStringOrNull("status")?.toMangaState(),
author = null,
source = source,
)
}

@ -11,7 +11,6 @@ import org.koitharu.kotatsu.parsers.util.mimeType
import org.koitharu.kotatsu.test_util.*
import kotlin.time.Duration.Companion.minutes
//@ExtendWith(AuthCheckExtension::class)
internal class MangaParserTest {

Loading…
Cancel
Save