From d68801c922c83bdb1c97279b41f9925981b523e5 Mon Sep 17 00:00:00 2001 From: kaliko Date: Sat, 12 Dec 2020 19:07:19 +0100 Subject: [PATCH] Split needed tags setup (regular/mbid) --- sima/mpdclient.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/sima/mpdclient.py b/sima/mpdclient.py index 42c4167..0f91380 100644 --- a/sima/mpdclient.py +++ b/sima/mpdclient.py @@ -121,9 +121,8 @@ class MPD(MPDClient): """ needed_cmds = ['status', 'stats', 'add', 'find', 'search', 'currentsong', 'ping'] - needed_mbid_tags = {'Artist', 'Album', 'AlbumArtist', - 'Title', 'Track', 'Genre', - 'MUSICBRAINZ_ARTISTID', 'MUSICBRAINZ_ALBUMID', + needed_tags = {'Artist', 'Album', 'AlbumArtist', 'Title', 'Track'} + needed_mbid_tags = {'MUSICBRAINZ_ARTISTID', 'MUSICBRAINZ_ALBUMID', 'MUSICBRAINZ_ALBUMARTISTID', 'MUSICBRAINZ_TRACKID'} database = None @@ -181,10 +180,18 @@ class MPD(MPDClient): raise PlayerError('Could connect to "%s", ' 'but command "%s" not available' % (host, cmd)) - # Controls use of MusicBrainzIdentifier self.tagtypes('clear') + for tag in MPD.needed_tags: + self.tagtypes('enable', tag) + tt = set(map(str.lower, self.tagtypes())) + needed_tags = set(map(str.lower, MPD.needed_tags)) + if len(needed_tags & tt) != len(MPD.needed_tags): + self.log.warning('MPD exposes: %s', tt) + self.log.warning('Tags needed: %s', needed_tags) + raise PlayerError('Missing mandatory metadata!') for tag in MPD.needed_mbid_tags: self.tagtypes('enable', tag) + # Controls use of MusicBrainzIdentifier if self.daemon.config.get('sima', 'musicbrainzid'): tt = set(self.tagtypes()) if len(MPD.needed_mbid_tags & tt) != len(MPD.needed_mbid_tags): -- 2.39.5