diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/heancms/HeanCms.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/heancms/HeanCms.kt index f8519aaf..c55a3389 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/heancms/HeanCms.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/heancms/HeanCms.kt @@ -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 { 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() @@ -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() + } } }