[HeanCms] Fix manga ids

master
Koitharu 1 year ago
parent ca59e8e577
commit ae76631aaf
Signed by: Koitharu
GPG Key ID: 676DEE768C17A9D7

@ -7,10 +7,7 @@ import org.koitharu.kotatsu.parsers.config.ConfigKey
import org.koitharu.kotatsu.parsers.core.LegacyPagedMangaParser
import org.koitharu.kotatsu.parsers.model.*
import org.koitharu.kotatsu.parsers.util.*
import org.koitharu.kotatsu.parsers.util.json.asTypedList
import org.koitharu.kotatsu.parsers.util.json.getFloatOrDefault
import org.koitharu.kotatsu.parsers.util.json.mapJSON
import org.koitharu.kotatsu.parsers.util.json.unescapeJson
import org.koitharu.kotatsu.parsers.util.json.*
import java.text.SimpleDateFormat
import java.util.*
@ -112,7 +109,6 @@ internal abstract class HeanCms(
private fun parseMangaList(response: JSONObject): List<Manga> {
return response.getJSONArray("data").mapJSON { it ->
val id = it.getLong("id")
val url = "/comic/${it.getString("series_slug")}"
val publicUrl = "/series/${it.getString("series_slug")}"
val title = it.getString("title")
val cover = if (it.getString("thumbnail").startsWith("https://")) {
@ -122,8 +118,8 @@ internal abstract class HeanCms(
}
Manga(
id = id,
url = url,
id = generateUid(id),
url = id.toString(),
title = title,
altTitles = setOfNotNull(it.getString("alternative_names").takeIf { it.isNotBlank() }),
publicUrl = publicUrl.toAbsoluteUrl(domain),
@ -148,7 +144,7 @@ internal abstract class HeanCms(
protected open val datePattern = "yyyy-MM-dd"
override suspend fun getDetails(manga: Manga): Manga {
val seriesId = manga.id
val seriesId = manga.url.toLongOrNull() ?: manga.id // backward compatibility
val url = "https://$apiPath/chapter/query?page=1&perPage=9999&series_id=$seriesId"
val response = webClient.httpGet(url).parseJson()
val data = response.getJSONArray("data").asTypedList<JSONObject>()
@ -158,7 +154,7 @@ internal abstract class HeanCms(
val chapterUrl =
"/series/${it.getJSONObject("series").getString("series_slug")}/${it.getString("chapter_slug")}"
MangaChapter(
id = it.getLong("id"),
id = generateUid(it.getLong("id")),
title = it.getString("chapter_name"),
number = i + 1f,
volume = 0,
@ -200,13 +196,13 @@ internal abstract class HeanCms(
?.let { "[$it]" }
?: return emptySet()
return JSONArray(tags).mapJSON {
return JSONArray(tags).mapJSONToSet {
MangaTag(
key = it.getInt("id").toString(),
title = it.getString("name").toTitleCase(sourceLocale),
source = source,
)
}.toSet()
}
}
}

Loading…
Cancel
Save