Trakt export import #9
No reviewers
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No assignees
3 participants
Notifications
Due date
No due date set.
Reference
marvin8/xique!9
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/issue-4-phase-1c-trakt-import"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
One-time import of a Trakt data export zip into the watch ledger, per issue #4 and spec §8.2: a pure-local export zip parser (history, aggregates, ratings, hidden-recommendations), a worker
trakt_importjob, a per-user upload in settings with import status, and thexique import-traktCLI.watch_eventsuniqueness, trakt history ids ridesource_ref.upsert_mediagainstrakt_id/tvdb_idand preserve-if-present enrichment so imports never blank Jellyfin metadata; ledger writes accept true source timestamps.XIQUE_IMPORT_DIR(128 MiB cap, CSRF, structural validation) and are deleted after a successful parse; the CLI never deletes the operator's own file.mainis never parsed inline: upload and CLI both enqueue; the worker is the single parsing path.Verified against a real export end-to-end (CLI → worker): 794 media rows, 4,396 watch events, 745 ratings, 47 dismissals, replay byte-identical. 210 tests,
uv run nox8/8 green at every commit.Closes #4
This PR is too large to review automatically (3619 lines; limit is 2000). Please consider splitting it into smaller PRs.