Skip to content

Move playlist metadata loading out of the model - #78

Draft
ghbarker wants to merge 1 commit into
varunsalian:webdav-syncfrom
ghbarker:codex/refactor-playlist-metadata-loader
Draft

ghbarker wants to merge 1 commit into
varunsalian:webdav-syncfrom
ghbarker:codex/refactor-playlist-metadata-loader

Conversation

@ghbarker

Copy link
Copy Markdown
Contributor

Moves playlist metadata loading out of the SeriesPlaylist model into a dedicated service, with explicit calls from the playlist screen, player and launcher. The model keeps its per-index success cache and shared IMDb mutation policy; all nine consumers preserve their arguments and completion handling.

The extraction retains saved-mapping precedence, existing fallback behavior, immediate supplied-ID assignment, first successful shared IMDb, and last completion for the same movie index. Existing malformed-response behavior is characterized rather than silently changed.

Validation against webdav-sync at 75b53ef3: 21 HTTP/model characterization cases passed before extraction; 37 focused tests passed afterward. Seven compiled behavior mutations were rejected. Independent review ran those tests plus a held-response probe: 38 pass, and two further cache mutations fail their assertions. Scoped analysis has no new diagnostics or errors (133 existing diagnostics reduced to 132).

This is an independent slice of retired #61. It explicitly migrates repository callers to the loader; compatibility for external callers of the removed model loading methods is not promised. No new cache feature, token configuration, player controller foundation or settings rearrangement. Native playback/device verification remains outstanding.

Move metadata loading bodies from SeriesPlaylist into a dedicated service and
migrate nine calls across playlist content, player and launcher. Keep the
existing per-index cache in the model, immediate supplied IMDb assignment,
first shared success, last same-index completion, and current partial-error
mutations. Preserve current storage/services and the existing PlaylistEntry
path without cache, token or registry dependencies.

Pin 21 real-model/service HTTP cases before extraction, then retain them against
the loader; all 37 scoped metadata/guide/resume tests pass. Seven compiled
production mutations are rejected and restored byte-for-byte. Scoped analysis
has zero new diagnostics (133 baseline to 132); native/device/build validation
remains with parent.

This branch has not been deployed

No deployments
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