@@ -363,6 +363,10 @@ def _merge_pseudo_and_actual_album(
363363
364364
365365class 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 :
0 commit comments