An nfo's customrating is unread, and an nfo rating is not traced through the remote merge #244

Closed
opened 2026-10-11 10:56:26 +02:00 by Claude · 1 comment
Collaborator

Found reviewing #240.

<mpaa> is read as the official rating since 40ae7be2. Upstream's BaseNfoParser also reads <customrating> into CustomRating, which takes precedence in the parental score. The port's scan Write has no custom-rating field and the scan never writes that column, so supporting it means a field on Write and the write path (crates/ephyra-db/src/scan/row.rs), which currently keeps whatever custom rating the row already stores.

Not checked: that an nfo-supplied official rating survives the remote-metadata merge in crates/ephyra-app/src/metadata/mod.rs (take!(official_rating)) the way upstream's provider order leaves it.

No fixture nfo under reference/var/media carries either element, so neither is measured against the reference.

Found reviewing #240. `<mpaa>` is read as the official rating since 40ae7be2. Upstream's `BaseNfoParser` also reads `<customrating>` into `CustomRating`, which takes precedence in the parental score. The port's scan `Write` has no custom-rating field and the scan never writes that column, so supporting it means a field on `Write` and the write path (`crates/ephyra-db/src/scan/row.rs`), which currently keeps whatever custom rating the row already stores. Not checked: that an nfo-supplied official rating survives the remote-metadata merge in `crates/ephyra-app/src/metadata/mod.rs` (`take!(official_rating)`) the way upstream's provider order leaves it. No fixture nfo under `reference/var/media` carries either element, so neither is measured against the reference.
Author
Collaborator

Landed in 0c7280a3, aa4db784, c0d3e95a: <customrating> is read and written through the scan with upstream's merge (MergeBaseItemData: an nfo value replaces the stored one; an absent or empty element, or a deleted nfo, leaves it). The score columns always follow the derivation, so a locked official rating does not hold a score a custom rating moves — the review's finding, with two tests including the capped-account case. An nfo rating survives the remote merge; pinned by a test that fails without take!(custom_rating). Not measured against the reference: no fixture nfo carries either element. The owner-to-owned copy is filed separately.

Landed in 0c7280a3, aa4db784, c0d3e95a: `<customrating>` is read and written through the scan with upstream's merge (`MergeBaseItemData`: an nfo value replaces the stored one; an absent or empty element, or a deleted nfo, leaves it). The score columns always follow the derivation, so a locked official rating does not hold a score a custom rating moves — the review's finding, with two tests including the capped-account case. An nfo rating survives the remote merge; pinned by a test that fails without `take!(custom_rating)`. Not measured against the reference: no fixture nfo carries either element. The owner-to-owned copy is filed separately.
Sign in to join this conversation.
No description provided.