feat: Collection › Unmatched lists the library albums no MusicBrainz album matched, each matched by hand from a search or a link, or left off (M502 #5579)
release / govulncheck (push) Successful in 16s
release / web (push) Successful in 1m17s
release / go (push) Successful in 1m34s
release / integration (push) Failing after 5m34s
release / android (push) Successful in 5m36s
release / Build signed APK (releases and dev) (push) Successful in 5m44s
release / Attach APK to the Release (tag releases only) (push) Skipped
release / Build + push container image (push) Skipped
release / Verify release artifacts (tag releases only) (push) Skipped
release / govulncheck (push) Successful in 16s
release / web (push) Successful in 1m17s
release / go (push) Successful in 1m34s
release / integration (push) Failing after 5m34s
release / android (push) Successful in 5m36s
release / Build signed APK (releases and dev) (push) Successful in 5m44s
release / Attach APK to the Release (tag releases only) (push) Skipped
release / Build + push container image (push) Skipped
release / Verify release artifacts (tag releases only) (push) Skipped
Like Lidarr's Unmapped Files. A local band's album, which MusicBrainz will never have, is left off: never matched again and not counted. A re-tagged album is matched again on the next listing. The Collection's verdict now says when library albums need matching. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -50,7 +50,10 @@ const libraryMatcher = 4
|
||||
//
|
||||
// Each album decided is recorded in library_album_matches, so an album taken
|
||||
// off the list stays off. Once done the listing runs again only for albums
|
||||
// an older matcher refused (libraryMatcher).
|
||||
// an older matcher refused (libraryMatcher), refused albums whose tracks
|
||||
// have changed since, and library tracks a re-tag filed under a new album
|
||||
// (#5579). A person matches the rest by hand, or leaves them off, in the
|
||||
// Collection's Unmatched section (MatchAlbumTo, LeaveAlbumOff).
|
||||
func (s *Service) listLibrary(ctx context.Context, res *PassResult) error {
|
||||
q := dbq.New(s.pool)
|
||||
state, err := q.GetLibraryListing(ctx)
|
||||
@@ -58,9 +61,10 @@ func (s *Service) listLibrary(ctx context.Context, res *PassResult) error {
|
||||
return fmt.Errorf("wanted: read the library listing: %w", err)
|
||||
}
|
||||
if state.LibraryListedAt.Valid {
|
||||
stale, err := q.CountAlbumsToRematch(ctx, libraryMatcher)
|
||||
stale, err := q.CountAlbumsToMatch(ctx, dbq.CountAlbumsToMatchParams{
|
||||
Cutoff: state.LibraryListingStartedAt, Matcher: libraryMatcher})
|
||||
if err != nil {
|
||||
return fmt.Errorf("wanted: count refusals to retry: %w", err)
|
||||
return fmt.Errorf("wanted: count albums to match again: %w", err)
|
||||
}
|
||||
if stale == 0 {
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user