From ebcd540e582ab873c85a27a6ead86d596377de94 Mon Sep 17 00:00:00 2001 From: Filipe Fortes Date: Wed, 26 Mar 2014 12:02:52 -0700 Subject: [PATCH] Only use primary artist aliases. Fixes #632. MusicBrainz will send down various artist aliases that may not be the primary (e.g. the previous name for a group). Only use an alias for the artist if it is the primary alias in one of the import locales. --- beets/autotag/mb.py | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/beets/autotag/mb.py b/beets/autotag/mb.py index c63d8fdc5..779ec4b3c 100644 --- a/beets/autotag/mb.py +++ b/beets/autotag/mb.py @@ -80,20 +80,13 @@ def _preferred_alias(aliases): # Search configured locales in order. for locale in config['import']['languages'].as_str_seq(): - # Find matching aliases for this locale. - matches = [a for a in aliases if a['locale'] == locale] + # Find matching primary aliases for this locale. + matches = [a for a in aliases if a['locale'] == locale and 'primary' in a] # Skip to the next locale if we have no matches if not matches: continue - # Find the aliases that have the primary flag set. - primaries = [a for a in matches if 'primary' in a] - # Take the primary if we have it, otherwise take the first - # match with the correct locale. - if primaries: - return primaries[0] - else: - return matches[0] + return matches[0] def _flatten_artist_credit(credit): """Given a list representing an ``artist-credit`` block, flatten the