NuvioStreaming/composeApp
skoruppa f2bf839e29 feat: Simkl anime tracking — per-season MAL/Kitsu ID resolution
Write path:
- resolveAnimeEpisodeForSimkl() overrides IDs from video ID (Path B)
- Only the anime-specific ID from videoId is sent (no shared IDs)
- videoId flows through WatchedItem → push/delete → Simkl API

Read path:
- animeAlternateWatchedKeys() emits extra watched keys under alternate IDs
- Observer on Simkl snapshot keeps watchedKeys reactive
- SimklAnimeWatchedFallback handles franchise-parent content IDs
- Optimistic removals prevent stale fallback reads

Bootstrap:
- full_anime_seasons + episode_tvdb_id + language=en for both bootstrap and changes

Library:
- Anime entries use type 'anime' and supportedContentTypes includes 'anime'

Infrastructure:
- WatchedItem.videoId field for episode video ID propagation
- WatchedSyncAdapter.observeExtraWatchedKeys() for reactive extra keys
- WatchedRepository observes provider extra keys and re-publishes
2026-07-26 02:57:39 +02:00
..
libs build(android): vendor Nuvio Engine AAR 2026-07-20 18:05:37 +05:30
src feat: Simkl anime tracking — per-season MAL/Kitsu ID resolution 2026-07-26 02:57:39 +02:00
build.gradle.kts feat(simkl): add secure PKCE authentication 2026-07-23 00:26:40 +05:30
proguard-rules.pro build(android): vendor Nuvio Engine AAR 2026-07-20 18:05:37 +05:30