Skip to content

Commit d3bf316

Browse files
aereauxsnejus
andcommitted
Apply suggestions from code review
Co-authored-by: Šarūnas Nejus <[email protected]>
1 parent f4f7b0f commit d3bf316

File tree

2 files changed

+19
-14
lines changed

2 files changed

+19
-14
lines changed

beetsplug/musicbrainz.py

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,10 @@ def _merge_pseudo_and_actual_album(
363363

364364

365365
class MusicBrainzPlugin(MetadataSourcePlugin):
366+
@cached_property
367+
def genres_field(self) -> str | None:
368+
return f"{config['musicbrainz']['genres_tag'].get()}-list"
369+
366370
def __init__(self):
367371
"""Set up the python-musicbrainz-ngs module according to settings
368372
from the beets configuration. This should be called at startup.
@@ -376,6 +380,7 @@ def __init__(self):
376380
"ratelimit_interval": 1,
377381
"searchlimit": 5,
378382
"genres": False,
383+
"genres_tag": "genre",
379384
"external_ids": {
380385
"discogs": False,
381386
"bandcamp": False,
@@ -396,17 +401,6 @@ def __init__(self):
396401
self.config["ratelimit_interval"].as_number(),
397402
self.config["ratelimit"].get(int),
398403
)
399-
genres_config = config["musicbrainz"]["genres"]
400-
if genres_config:
401-
genres_config = genres_config.get(str)
402-
if genres_config == "genres":
403-
self.genre_or_tag = "genre"
404-
elif genres_config == "tags":
405-
self.genre_or_tag = "tag"
406-
else:
407-
self.genre_or_tag = "genre"
408-
else:
409-
self.genre_or_tag = False
410404

411405
def track_info(
412406
self,
@@ -717,10 +711,10 @@ def album_info(self, release: JSONDict) -> beets.autotag.hooks.AlbumInfo:
717711
else:
718712
info.media = "Media"
719713

720-
if self.genre_or_tag:
714+
if self.config["genres"]:
721715
sources = [
722-
release["release-group"].get(self.genre_or_tag + "-list", []),
723-
release.get(self.genre_or_tag + "-list", []),
716+
release["release-group"].get(self.genres_field, []),
717+
release.get(self.genres_field, []),
724718
]
725719
genres: Counter[str] = Counter()
726720
for source in sources:

docs/plugins/musicbrainz.rst

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ Default
3030
searchlimit: 5
3131
extra_tags: []
3232
genres: no
33+
genres_tag: genre
3334
external_ids:
3435
discogs: no
3536
bandcamp: no
@@ -124,6 +125,16 @@ Use MusicBrainz genre tags to populate (and replace if it's already set) the
124125
and the release-group on MusicBrainz, separated by "; " and sorted by the total
125126
number of votes. Default: ``no``
126127

128+
.. _genres_tag:
129+
130+
genres_tag
131+
++++++
132+
133+
Either ``genres`` or ``tags``. Specify ``genres`` to use just musicbrainz genres
134+
and ``tags`` to use all user-supplied musicbrainz tags.
135+
136+
Default: ``genres``
137+
127138
.. _musicbrainz.external_ids:
128139

129140
external_ids

0 commit comments

Comments
 (0)