[music] Resolve artist identity before splitting (fd86a11a)
This commit is contained in:
18
PROJECT.org
18
PROJECT.org
@ -612,7 +612,7 @@ favorited media objects.
|
||||
*** Description
|
||||
As an example https://comicbookroundup.com/comic-books/reviews/humanoids-publishing/the-history-of-science-fiction
|
||||
|
||||
** TODO [#A] Add an exception list of artists as a constant that are exempted from splitting :music:artists:metadata:
|
||||
** DONE [#A] Add an exception list of artists as a constant that are exempted from splitting :music:artists:metadata:
|
||||
:PROPERTIES:
|
||||
:ID: fd86a11a-73ec-470d-b5e3-2d90ba9137c8
|
||||
:END:
|
||||
@ -623,6 +623,22 @@ Certain artists like "Simon & Garfunkel" are actually one artist. While we don't
|
||||
tracks into featured artists, we should have a "LITERAL_ARTIST_TITLES" constant that can have exceptions like
|
||||
this put into it and then we stop trying to pull the artist apart when we run into it.
|
||||
|
||||
*** Notes
|
||||
|
||||
Instead of a hardcoded exception list, we resolve artist identity before
|
||||
splitting on " & ":
|
||||
|
||||
- `resolve_artist_names()` in music/utils.py keeps an artist string literal
|
||||
when a MusicBrainz artist id is provided (webhooks), when the full string
|
||||
already exists as an Artist, or when it matches a single MusicBrainz
|
||||
artist (e.g. "Simon & Garfunkel" is a Group). Splitting on " & " is now a
|
||||
last resort for genuine collaborations.
|
||||
- `Track.find_or_create()` and `Track.fix_metadata()` use the resolved name
|
||||
instead of always splitting.
|
||||
- `reconcile_split_artists` management command repairs tracks already split
|
||||
by the old logic, using the raw artist data stored in scrobble logs, and
|
||||
deletes orphaned fragment artists.
|
||||
|
||||
** TODO [#A] Update how board game scrobbles work :boardgames:
|
||||
|
||||
*** Description
|
||||
|
||||
Reference in New Issue
Block a user