From: kaliko Date: Sat, 12 Dec 2020 18:07:19 +0000 (+0100) Subject: Split needed tags setup (regular/mbid) X-Git-Tag: 0.16.0~19 X-Git-Url: https://git.kaliko.me/?a=commitdiff_plain;h=d68801c922c83bdb1c97279b41f9925981b523e5;p=mpd-sima.git Split needed tags setup (regular/mbid) --- 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):