Song dimension with Subsonic now-playing and MusicBrainz enrichment #11
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What to build
Songis what a User was listening to when aMoodEntrywas logged. Captured at the moment of logging only — aMoodEntrynever acquires aSonglater.Stored as its own title, artist, and album rather than as a pointer elsewhere, so a
MoodEntrystays readable with nothing else reachable and works for local rips and bootlegs that MusicBrainz has never heard of. An external recording identity is carried when one resolves, and that is what makes two entries about the same recording comparable — without it, "The Beatles" and "the beatles" correlate as two artists.Auto-fill: the server calls the User's music
Providerfor now-playing while an entry is being composed, using theProviderConnectionfrom #5. This is synchronous and on-demand. It is deliberately not a queued job — there is no backfill and nothing for a sweep to rediscover, so per ADR 0004 it does not belong on the queue.Both the now-playing lookup and the MusicBrainz resolution are best-effort. Either failing must leave the User able to type a song by hand and save the entry.
Acceptance criteria
ProviderProviderConnectioncan still attach a song manuallyBlocked by