Kamyroll: Fix an error when episode number is a fraction (#1133)

This commit is contained in:
Samfun75
2023-01-03 18:10:12 +03:00
committed by GitHub
parent 6d3f640d19
commit 74d8a6113a
3 changed files with 9 additions and 5 deletions

View File

@ -6,7 +6,7 @@ ext {
extName = 'Kamyroll'
pkgNameSuffix = 'all.kamyroll'
extClass = '.Kamyroll'
extVersionCode = 2
extVersionCode = 3
libVersion = '13'
}

View File

@ -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
)

View File

@ -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 ?: ""
}