Kamyroll: Fix an error when episode number is a fraction (#1133)
This commit is contained in:
@ -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'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -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 ?: ""
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user