feat(explore): carry the local row id on a top result
`TopResult` was the one projection here that shipped `inLibrary` and no local id, so the top-results cards had no choice but to read the weaker flag. Every sibling model — `MBArtist`, `MBReleaseGroup`, `MBRecording` — already carries `LocalID`, and the candidate builders had the value in hand at every construction site. `LocalID` is set and cleared by a test against `audio_files`, so it means "there is something of mine here". `InLibrary` is written by the same pass but is a one-way ratchet the prune can only clear alongside a local id; it stays for scoring, which is where an approximate answer is fine.
This commit is contained in:
@@ -2212,6 +2212,7 @@ func (e *Service) gatherTopCandidates(
|
||||
ArtistType: a.Type,
|
||||
Country: a.Country,
|
||||
InLibrary: a.InLibrary,
|
||||
LocalID: a.LocalID,
|
||||
},
|
||||
category: "artist",
|
||||
qualityScore: quality,
|
||||
@@ -2243,6 +2244,7 @@ func (e *Service) gatherTopCandidates(
|
||||
ArtistType: a.Type,
|
||||
Country: a.Country,
|
||||
InLibrary: a.InLibrary,
|
||||
LocalID: a.LocalID,
|
||||
},
|
||||
category: "artist",
|
||||
qualityScore: quality,
|
||||
@@ -2275,6 +2277,7 @@ func (e *Service) gatherTopCandidates(
|
||||
PrimaryType: rg.PrimaryType,
|
||||
Year: year,
|
||||
InLibrary: rg.InLibrary,
|
||||
LocalID: rg.LocalID,
|
||||
},
|
||||
category: "release_group",
|
||||
qualityScore: quality,
|
||||
@@ -2320,6 +2323,7 @@ func (e *Service) gatherTopCandidates(
|
||||
PrimaryType: rg.PrimaryType,
|
||||
Year: year,
|
||||
InLibrary: rg.InLibrary,
|
||||
LocalID: rg.LocalID,
|
||||
},
|
||||
category: "release_group",
|
||||
qualityScore: quality,
|
||||
@@ -2347,6 +2351,7 @@ func (e *Service) gatherTopCandidates(
|
||||
CAAReleaseMBID: r.CAAReleaseMBID,
|
||||
ReleaseName: r.ReleaseName,
|
||||
InLibrary: r.InLibrary,
|
||||
LocalID: r.LocalID,
|
||||
},
|
||||
category: "recording",
|
||||
qualityScore: quality,
|
||||
@@ -2403,6 +2408,7 @@ func (e *Service) gatherTopCandidates(
|
||||
CAAReleaseMBID: r.CAAReleaseMBID,
|
||||
ReleaseName: r.ReleaseName,
|
||||
InLibrary: r.InLibrary,
|
||||
LocalID: r.LocalID,
|
||||
},
|
||||
category: "recording",
|
||||
qualityScore: quality,
|
||||
@@ -2425,6 +2431,7 @@ func (e *Service) gatherTopCandidates(
|
||||
ArtistType: m.ArtistType,
|
||||
Country: m.Country,
|
||||
InLibrary: m.InLibrary || m.LocalArtistID > 0,
|
||||
LocalID: m.LocalArtistID,
|
||||
},
|
||||
category: "artist",
|
||||
qualityScore: quality,
|
||||
@@ -2445,6 +2452,7 @@ func (e *Service) gatherTopCandidates(
|
||||
PrimaryType: m.PrimaryType,
|
||||
Year: year,
|
||||
InLibrary: m.InLibrary || m.LocalReleaseGroupID > 0,
|
||||
LocalID: m.LocalReleaseGroupID,
|
||||
},
|
||||
category: "release_group",
|
||||
qualityScore: quality,
|
||||
@@ -2459,6 +2467,7 @@ func (e *Service) gatherTopCandidates(
|
||||
ArtistMBID: m.ArtistMBID,
|
||||
Length: m.Duration,
|
||||
InLibrary: m.InLibrary || m.LocalRecordingID > 0,
|
||||
LocalID: m.LocalRecordingID,
|
||||
},
|
||||
category: "recording",
|
||||
qualityScore: quality,
|
||||
|
||||
Reference in New Issue
Block a user