From 459019803ead6bc7d0b40181d6b0b74dbfe90ab0 Mon Sep 17 00:00:00 2001
From: seew3l <90949336+seew3l@users.noreply.github.com>
Date: Wed, 19 Apr 2023 14:20:30 -0500
Subject: [PATCH] HeanCms: Fix incorrect "Latest Manga" and some thumbnails not
 loading (#16108)

* Fixes

* Change function name

Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>

* Change function name

---------

Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
---
 .../eu/kanade/tachiyomi/multisrc/heancms/HeanCms.kt  |  4 +++-
 .../kanade/tachiyomi/multisrc/heancms/HeanCmsDto.kt  | 12 ++++++++----
 .../tachiyomi/multisrc/heancms/HeanCmsGenerator.kt   |  2 +-
 3 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/heancms/HeanCms.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/heancms/HeanCms.kt
index 929f27004..63c95d260 100644
--- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/heancms/HeanCms.kt
+++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/heancms/HeanCms.kt
@@ -57,6 +57,7 @@ abstract class HeanCms(
             orderBy = "total_views",
             status = "Ongoing",
             type = "Comic",
+            tagIds = emptyList(),
         )
 
         val payload = json.encodeToString(payloadObj).toRequestBody(JSON_MEDIA_TYPE)
@@ -96,6 +97,7 @@ abstract class HeanCms(
             orderBy = "latest",
             status = "Ongoing",
             type = "Comic",
+            tagIds = emptyList(),
         )
 
         val payload = json.encodeToString(payloadObj).toRequestBody(JSON_MEDIA_TYPE)
@@ -325,8 +327,8 @@ abstract class HeanCms(
             page = page,
             order = "desc",
             orderBy = "total_views",
-            status = "",
             type = "Comic",
+            tagIds = emptyList(),
         )
 
         val payload = json.encodeToString(payloadObj).toRequestBody(JSON_MEDIA_TYPE)
diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/heancms/HeanCmsDto.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/heancms/HeanCmsDto.kt
index a05a237d7..25710d186 100644
--- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/heancms/HeanCmsDto.kt
+++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/heancms/HeanCmsDto.kt
@@ -41,7 +41,7 @@ data class HeanCmsSearchDto(
 
         title = this@HeanCmsSearchDto.title
         thumbnail_url = when {
-            thumbnailFileName.isNotEmpty() -> "$apiUrl/$coverPath$thumbnailFileName"
+            thumbnailFileName.isNotEmpty() -> createThumbnailUrl(apiUrl, coverPath, thumbnailFileName)
             else -> ""
         }
         url = "/series/$slugOnly"
@@ -75,12 +75,16 @@ data class HeanCmsSeriesDto(
         genre = tags.orEmpty()
             .sortedBy(HeanCmsTagDto::name)
             .joinToString { it.name }
-        thumbnail_url = "$apiUrl/$coverPath$thumbnail"
+        thumbnail_url = createThumbnailUrl(apiUrl, coverPath, thumbnail)
         status = this@HeanCmsSeriesDto.status?.toStatus() ?: SManga.UNKNOWN
         url = "/series/${slug.replace(HeanCms.TIMESTAMP_REGEX, "")}"
     }
 }
 
+private fun createThumbnailUrl(apiUrl: String, coverPath: String, thumbnail: String): String {
+    return if (thumbnail.startsWith("https://")) thumbnail else "$apiUrl/$coverPath$thumbnail"
+}
+
 @Serializable
 data class HeanCmsTagDto(val name: String)
 
@@ -116,9 +120,9 @@ data class HeanCmsQuerySearchPayloadDto(
     val order: String,
     val page: Int,
     @SerialName("order_by") val orderBy: String,
-    @SerialName("series_status") val status: String,
+    @SerialName("series_status") val status: String? = null,
     @SerialName("series_type") val type: String,
-    @SerialName("tags_ids") val tagIds: List<Int> = emptyList(),
+    @SerialName("tags_ids") val tagIds: List<Int>?,
 )
 
 @Serializable
diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/heancms/HeanCmsGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/heancms/HeanCmsGenerator.kt
index 9060d84e4..288cc9237 100644
--- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/heancms/HeanCmsGenerator.kt
+++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/heancms/HeanCmsGenerator.kt
@@ -9,7 +9,7 @@ class HeanCmsGenerator : ThemeSourceGenerator {
 
     override val themeClass = "HeanCms"
 
-    override val baseVersionCode: Int = 10
+    override val baseVersionCode: Int = 11
 
     override val sources = listOf(
         SingleLang("Omega Scans", "https://omegascans.org", "en", isNsfw = true, overrideVersionCode = 16),