mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-11 02:46:16 -08:00
fix(portals): stop a remake matching, and let a pin survive its own playlist
Three findings from the latest review pass. `normalizeTitleKeys` strips bracketed segments as tag noise, so "Dune (1984)" normalizes to exactly "dune" — an EXACT match for the 2021 film, ranked above every fuzzy one, with the year never consulted because that tier skipped the gate. Auto-failover could switch the user to the other film entirely. The year is now read out of brackets too, and a stated disagreement rejects the row on either tier. Playback positions are keyed by (playlist, stream), so watching through a pinned alternative stores progress under ITS ids while the page loads the route copy's row. Starting the pin therefore resumed from a position belonging to a different copy — usually zero. It now loads its own. And a pin can point at another copy of the film inside the playlist being viewed, which discovery excludes wholesale: the pinned row was absent from the list, so nothing showed as pinned and Play ignored the preference. The pin is now read before discovery, which keeps that one row. Moves the pin-shaped decisions into the pin module, where the persistence helpers already live. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
ed442da3ca
commit
f0c99fac87
12 files changed
+341
-65
No files matched your search
@@ -875,6 +875,8 @@ export interface ElectronBridgeApi {
|
||||
title: string;
|
||||
year?: number | null;
|
||||
excludePlaylistId?: string | null;
|
||||
/** A stream id inside the excluded playlist to keep anyway (a pin). */
|
||||
keepContentId?: number | null;
|
||||
}) => Promise<VodSourceCandidateRow[]>;
|
||||
/** Per-movie pinned source; keys are passed most-trusted first */
|
||||
dbGetVodSourcePin: (matchKeys: string[]) => Promise<VodSourcePin | null>;
|
||||
|
||||
Reference in new issue
Block a user