Skip to content

Commit b396dfe

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

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.
@@ -375,6 +379,7 @@ def __init__(self):
375379
"ratelimit": 1,
376380
"ratelimit_interval": 1,
377381
"genres": False,
382+
"genres_tag": "genre",
378383
"external_ids": {
379384
"discogs": False,
380385
"bandcamp": False,
@@ -404,17 +409,6 @@ def __init__(self):
404409
self.config["ratelimit_interval"].as_number(),
405410
self.config["ratelimit"].get(int),
406411
)
407-
genres_config = config["musicbrainz"]["genres"]
408-
if genres_config:
409-
genres_config = genres_config.get(str)
410-
if genres_config == "genres":
411-
self.genre_or_tag = "genre"
412-
elif genres_config == "tags":
413-
self.genre_or_tag = "tag"
414-
else:
415-
self.genre_or_tag = "genre"
416-
else:
417-
self.genre_or_tag = False
418412

419413
def track_info(
420414
self,
@@ -725,10 +719,10 @@ def album_info(self, release: JSONDict) -> beets.autotag.hooks.AlbumInfo:
725719
else:
726720
info.media = "Media"
727721

728-
if self.genre_or_tag:
722+
if self.config["genres"]:
729723
sources = [
730-
release["release-group"].get(self.genre_or_tag + "-list", []),
731-
release.get(self.genre_or_tag + "-list", []),
724+
release["release-group"].get(self.genres_field, []),
725+
release.get(self.genres_field, []),
732726
]
733727
genres: Counter[str] = Counter()
734728
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
search_limit: 5
3131
extra_tags: []
3232
genres: no
33+
genres_tag: genre
3334
external_ids:
3435
discogs: no
3536
bandcamp: no
@@ -129,6 +130,16 @@ Use MusicBrainz genre tags to populate (and replace if it's already set) the
129130
and the release-group on MusicBrainz, separated by "; " and sorted by the total
130131
number of votes. Default: ``no``
131132

133+
.. _genres_tag:
134+
135+
genres_tag
136+
++++++++++
137+
138+
Either ``genres`` or ``tags``. Specify ``genres`` to use just musicbrainz genres
139+
and ``tags`` to use all user-supplied musicbrainz tags.
140+
141+
Default: ``genres``
142+
132143
.. _musicbrainz.external_ids:
133144

134145
external_ids

0 commit comments

Comments
 (0)