MangaOVH: Parsing related manga
This commit is contained in:
@@ -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 {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user