From 14015ec652737eb5783ad62e0477a4be365a128d Mon Sep 17 00:00:00 2001 From: sumanth Date: Tue, 28 Jul 2026 21:28:09 +0530 Subject: [PATCH] fix: route Kitsu/MAL IDs for skip intro and correct AniSkip types query --- .../player/PlayerScreenRuntimeEffects.kt | 21 +++++++++++++------ .../app/features/player/skip/SkipIntroApi.kt | 4 ++-- 2 files changed, 17 insertions(+), 8 deletions(-) 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 02df155ae..c44e0b7d6 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 @@ -397,12 +397,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)