From dc20771476756ccaddf9da2b55b0f470e25c51e2 Mon Sep 17 00:00:00 2001 From: Kirill Kvit <44607316+kiryl-kvit@users.noreply.github.com> Date: Wed, 29 Oct 2025 14:28:28 +0100 Subject: [PATCH] Flame comics: Update data classes to match updated API responses (#11299) * Update data classes to match updated API responses * Update class name to correspond its usage * Remove fallback string --- src/en/flamecomics/build.gradle | 2 +- .../extension/en/flamecomics/FlameComics.kt | 10 ++-- .../en/flamecomics/FlameComicsDto.kt | 46 +++++++++++++------ 3 files changed, 38 insertions(+), 20 deletions(-) diff --git a/src/en/flamecomics/build.gradle b/src/en/flamecomics/build.gradle index c5e5d0470..0b61bbe56 100644 --- a/src/en/flamecomics/build.gradle +++ b/src/en/flamecomics/build.gradle @@ -1,7 +1,7 @@ ext { extName = 'Flame Comics' extClass = '.FlameComics' - extVersionCode = 44 + extVersionCode = 45 } apply from: "$rootDir/common.gradle" diff --git a/src/en/flamecomics/src/eu/kanade/tachiyomi/extension/en/flamecomics/FlameComics.kt b/src/en/flamecomics/src/eu/kanade/tachiyomi/extension/en/flamecomics/FlameComics.kt index b7b097eb9..70418b733 100644 --- a/src/en/flamecomics/src/eu/kanade/tachiyomi/extension/en/flamecomics/FlameComics.kt +++ b/src/en/flamecomics/src/eu/kanade/tachiyomi/extension/en/flamecomics/FlameComics.kt @@ -176,10 +176,11 @@ class FlameComics : HttpSource() { override fun mangaDetailsParse(response: Response): SManga = SManga.create().apply { val seriesData = - json.decodeFromString(response.body.string()).pageProps.series + json.decodeFromString(response.body.string()).pageProps.series title = seriesData.title thumbnail_url = thumbnailUrl(seriesData) - description = Jsoup.parseBodyFragment(seriesData.description).wholeText() + description = seriesData.description + ?.let { Jsoup.parseBodyFragment(it).wholeText() } genre = seriesData.tags?.let { tags -> (listOf(seriesData.type) + tags).joinToString() @@ -197,8 +198,9 @@ class FlameComics : HttpSource() { } override fun chapterListParse(response: Response): List { - val mangaPageData = json.decodeFromString(response.body.string()) - return mangaPageData.pageProps.chapters.map { chapter -> + val chaptersListResponseData = + json.decodeFromString(response.body.string()) + return chaptersListResponseData.pageProps.chapters.map { chapter -> SChapter.create().apply { setUrlWithoutDomain( baseUrl.toHttpUrl().newBuilder().apply { diff --git a/src/en/flamecomics/src/eu/kanade/tachiyomi/extension/en/flamecomics/FlameComicsDto.kt b/src/en/flamecomics/src/eu/kanade/tachiyomi/extension/en/flamecomics/FlameComicsDto.kt index 47e955b48..d7767e386 100644 --- a/src/en/flamecomics/src/eu/kanade/tachiyomi/extension/en/flamecomics/FlameComicsDto.kt +++ b/src/en/flamecomics/src/eu/kanade/tachiyomi/extension/en/flamecomics/FlameComicsDto.kt @@ -14,13 +14,31 @@ class NewBuildID( ) @Serializable -class MangaPageData( +class MangaDetailsResponseData( + val pageProps: PageProps, +) { + @Serializable + class PageProps( + val series: Series, + ) +} + +@Serializable +class ChapterListResponseData( val pageProps: PageProps, ) { @Serializable class PageProps( val chapters: List, - val series: Series, + ) + + @Serializable + data class Chapter( + val chapter: Double, + val title: String?, + val release_date: Long, + val series_id: Int, + val token: String, ) } @@ -60,7 +78,16 @@ class ChapterPageData( ) { @Serializable class PageProps( - val chapter: Chapter, + val chapter: ChapterPage, + ) + + @Serializable + data class ChapterPage( + val release_date: Long, + val series_id: Int, + val token: String, + @Serializable(with = KeysToListSerializer::class) + val images: List, ) } @@ -68,7 +95,7 @@ class ChapterPageData( class Series( val title: String, val altTitles: List?, - val description: String, + val description: String?, val cover: String, val type: String, val tags: List?, @@ -80,17 +107,6 @@ class Series( val views: Int?, ) -@Serializable -class Chapter( - val chapter: Double, - val title: String?, - val release_date: Long, - val series_id: Int, - val token: String, - @Serializable(with = KeysToListSerializer::class) - val images: List, -) - @Serializable class Page( val name: String,