Skip to content

remove forced Trakt source and canonicalize watched history ids - #3

Merged
neckaros merged 1 commit into
masterfrom
t3code/remove-trakt-forced-source
Aug 7, 2026
Merged

remove forced Trakt source and canonicalize watched history ids#3
neckaros merged 1 commit into
masterfrom
t3code/remove-trakt-forced-source

Conversation

@neckaros

@neckaros neckaros commented Aug 7, 2026

Copy link
Copy Markdown
Owner

Summary

This PR finishes the Trakt removal work for movie and TV history paths and replaces provider-specific watched/progress IDs with canonical RedSeat history IDs.

What changed

  • Remove forced Trakt assumptions from movie and episode watched/progress reads and writes.
  • Add canonical history IDs for:
    • movies: movie:imdb/<id> with fallback to TMDB then local RedSeat ID
    • series: series:<provider>/<id>
    • episodes: episode:<series-key>/<season>/<episode>
  • Add a startup migration that rewrites existing watched/progress rows to the canonical IDs.
  • Restrict that migration to Movies and Shows libraries only.
  • Make the migration a no-op when there is no movie/episode history yet, so first install stays clean.
  • Merge duplicate watched/progress rows safely during rewrite.
  • Preserve existing episode external IDs on refresh by matching imported episodes back to stored season/episode pairs.

Why

Watched episode state had been tied to legacy provider-specific IDs, especially Trakt-derived ones. Once Trakt was removed from the core source flow, refreshed metadata could stop matching the old history rows and episodes appeared unwatched.

The fix is to store history against stable canonical IDs owned by RedSeat instead of whichever metadata provider happened to be used at the time.

Impact

  • Existing installations migrate their movie and episode history on startup.
  • New installations do nothing extra because there is no history to migrate.
  • Movie and episode watched/progress state no longer depends on Trakt being configured in core.

Validation

  • cargo check --message-format short

- Use configured metadata plugins for movie, series, and episode lookups
- Remove Trakt-based search, refresh, trending, and ID enrichment fallbacks
@neckaros
neckaros merged commit 81fe4a3 into master Aug 7, 2026
1 check passed
@neckaros neckaros changed the title remove forced Trakt metadata source remove forced Trakt source and canonicalize watched history ids Aug 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant