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' extName = 'Kamyroll'
pkgNameSuffix = 'all.kamyroll' pkgNameSuffix = 'all.kamyroll'
extClass = '.Kamyroll' extClass = '.Kamyroll'
extVersionCode = 2 extVersionCode = 3
libVersion = '13' libVersion = '13'
} }

View File

@ -100,7 +100,7 @@ data class EpisodeList(
val id: String, val id: String,
val title: String, val title: String,
val season_number: Int, val season_number: Int,
val sequence_number: Int, val sequence_number: Float,
val is_subbed: Boolean, val is_subbed: Boolean,
val is_dubbed: Boolean, val is_dubbed: Boolean,
@SerialName("episode_air_date") @SerialName("episode_air_date")
@ -131,7 +131,7 @@ data class RawEpisode(
val id: String, val id: String,
val title: String, val title: String,
val season: Int, val season: Int,
val episode: Int, val episode: Float,
val air_date: String val air_date: String
) )

View File

@ -28,6 +28,7 @@ import rx.Observable
import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import java.text.DecimalFormat
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Locale import java.util.Locale
@ -170,10 +171,11 @@ class Kamyroll : ConfigurableAnimeSource, AnimeHttpSource() {
return rawEpsiodes.groupBy { "${it.season}_${it.episode}" } return rawEpsiodes.groupBy { "${it.season}_${it.episode}" }
.mapNotNull { group -> .mapNotNull { group ->
val (season, episode) = group.key.split("_") val (season, episode) = group.key.split("_")
val ep = episode.toFloatOrNull() ?: 0F
SEpisode.create().apply { SEpisode.create().apply {
url = EpisodeData(group.value.map { it.id }).toJsonString() 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 name = if (ep > 0) "Season $season Ep ${df.format(ep)}: " + group.value.first().title else group.value.first().title
episode_number = episode.toFloatOrNull() ?: 0F episode_number = ep
date_upload = parseDate(group.value.first().air_date) date_upload = parseDate(group.value.first().air_date)
} }
}.reversed() }.reversed()
@ -242,6 +244,8 @@ class Kamyroll : ConfigurableAnimeSource, AnimeHttpSource() {
.flatten() .flatten()
} }
private val df = DecimalFormat("0.#")
private fun String.getLocale(): String { private fun String.getLocale(): String {
return locale.firstOrNull { it.first == this }?.second ?: "" return locale.firstOrNull { it.first == this }?.second ?: ""
} }