From 74d8a6113a7ca18c9cee4761fc1790093bd3a393 Mon Sep 17 00:00:00 2001 From: Samfun75 <38332931+Samfun75@users.noreply.github.com> Date: Tue, 3 Jan 2023 18:10:12 +0300 Subject: [PATCH] Kamyroll: Fix an error when episode number is a fraction (#1133) --- src/all/kamyroll/build.gradle | 2 +- .../tachiyomi/animeextension/all/kamyroll/DataModel.kt | 4 ++-- .../tachiyomi/animeextension/all/kamyroll/Kamyroll.kt | 8 ++++++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/all/kamyroll/build.gradle b/src/all/kamyroll/build.gradle index 14bab5dda..534597323 100644 --- a/src/all/kamyroll/build.gradle +++ b/src/all/kamyroll/build.gradle @@ -6,7 +6,7 @@ ext { extName = 'Kamyroll' pkgNameSuffix = 'all.kamyroll' extClass = '.Kamyroll' - extVersionCode = 2 + extVersionCode = 3 libVersion = '13' } diff --git a/src/all/kamyroll/src/eu/kanade/tachiyomi/animeextension/all/kamyroll/DataModel.kt b/src/all/kamyroll/src/eu/kanade/tachiyomi/animeextension/all/kamyroll/DataModel.kt index 6fac71019..01f904092 100644 --- a/src/all/kamyroll/src/eu/kanade/tachiyomi/animeextension/all/kamyroll/DataModel.kt +++ b/src/all/kamyroll/src/eu/kanade/tachiyomi/animeextension/all/kamyroll/DataModel.kt @@ -100,7 +100,7 @@ data class EpisodeList( val id: String, val title: String, val season_number: Int, - val sequence_number: Int, + val sequence_number: Float, val is_subbed: Boolean, val is_dubbed: Boolean, @SerialName("episode_air_date") @@ -131,7 +131,7 @@ data class RawEpisode( val id: String, val title: String, val season: Int, - val episode: Int, + val episode: Float, val air_date: String ) diff --git a/src/all/kamyroll/src/eu/kanade/tachiyomi/animeextension/all/kamyroll/Kamyroll.kt b/src/all/kamyroll/src/eu/kanade/tachiyomi/animeextension/all/kamyroll/Kamyroll.kt index 10f932bf5..8dbd34a4a 100644 --- a/src/all/kamyroll/src/eu/kanade/tachiyomi/animeextension/all/kamyroll/Kamyroll.kt +++ b/src/all/kamyroll/src/eu/kanade/tachiyomi/animeextension/all/kamyroll/Kamyroll.kt @@ -28,6 +28,7 @@ import rx.Observable import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import uy.kohesive.injekt.injectLazy +import java.text.DecimalFormat import java.text.SimpleDateFormat import java.util.Locale @@ -170,10 +171,11 @@ class Kamyroll : ConfigurableAnimeSource, AnimeHttpSource() { return rawEpsiodes.groupBy { "${it.season}_${it.episode}" } .mapNotNull { group -> val (season, episode) = group.key.split("_") + val ep = episode.toFloatOrNull() ?: 0F SEpisode.create().apply { url = EpisodeData(group.value.map { it.id }).toJsonString() - name = if (episode.toInt() > 0) "Season $season Ep $episode: " + group.value.first().title else group.value.first().title - episode_number = episode.toFloatOrNull() ?: 0F + name = if (ep > 0) "Season $season Ep ${df.format(ep)}: " + group.value.first().title else group.value.first().title + episode_number = ep date_upload = parseDate(group.value.first().air_date) } }.reversed() @@ -242,6 +244,8 @@ class Kamyroll : ConfigurableAnimeSource, AnimeHttpSource() { .flatten() } + private val df = DecimalFormat("0.#") + private fun String.getLocale(): String { return locale.firstOrNull { it.first == this }?.second ?: "" }