diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/player/PlayerScreenRuntimeEffects.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/player/PlayerScreenRuntimeEffects.kt index e1046a32c..bb505e9e2 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/player/PlayerScreenRuntimeEffects.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/player/PlayerScreenRuntimeEffects.kt @@ -402,12 +402,21 @@ private fun PlayerScreenRuntime.BindPlayerMetadataAndSkipEffects() { if (season == null || episode == null || vid == null) return@LaunchedEffect launch { - val imdbId = vid.split(":").firstOrNull()?.takeIf { it.startsWith("tt") } - val intervals = SkipIntroRepository.getSkipIntervals( - imdbId = imdbId, - season = season, - episode = episode, - ) + val intervals = when { + vid.startsWith("mal:") -> { + val malId = vid.removePrefix("mal:").substringBefore(':') + SkipIntroRepository.getSkipIntervalsForMal(malId = malId, episode = episode) + } + vid.startsWith("kitsu:") -> { + val kitsuId = vid.removePrefix("kitsu:").substringBefore(':') + SkipIntroRepository.getSkipIntervalsForKitsu(kitsuId = kitsuId, episode = episode) + } + else -> SkipIntroRepository.getSkipIntervals( + imdbId = vid.substringBefore(':').takeIf { it.startsWith("tt") }, + season = season, + episode = episode, + ) + } skipIntervals = intervals } } diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/player/skip/SkipIntroApi.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/player/skip/SkipIntroApi.kt index 25438fde6..61ae5e0e4 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/player/skip/SkipIntroApi.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/player/skip/SkipIntroApi.kt @@ -92,8 +92,8 @@ internal object SkipIntroApi { malId: String, episode: Int, ): AniSkipResponse? { - val types = "op,ed,recap,mixed-op,mixed-ed" - val url = "${ANISKIP_BASE}skip-times/$malId/$episode?types=$types&episodeLength=0" + val types = "types=op&types=ed&types=recap&types=mixed-op&types=mixed-ed" + val url = "${ANISKIP_BASE}skip-times/$malId/$episode?$types&episodeLength=0" return try { val text = httpGetText(url) json.decodeFromString(text)