@@ -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.
@@ -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 :
0 commit comments