X-Git-Url: https://git.kaliko.me/?a=blobdiff_plain;f=sima%2Fclient.py;h=c04f560aece84c749a839e0aade0823f47493af4;hb=80162143f725cbe604f7241e4dfc4929833470e5;hp=79843e07a2cd1fd89581971740c17a5581b116e2;hpb=1c01e4a7aa37eeef825c6918fc90b154a7f4ccc7;p=mpd-sima.git diff --git a/sima/client.py b/sima/client.py index 79843e0..c04f560 100644 --- a/sima/client.py +++ b/sima/client.py @@ -62,7 +62,7 @@ def bl_artist(func): names = list() for art in result.names: if cls.database.get_bl_artist(art, add_not=True): - cls.log.debug('Blacklisted "{0}"'.format(art)) + cls.log.debug('Blacklisted "%s"', art) continue names.append(art) if not names: @@ -136,7 +136,6 @@ class PlayerClient(Player): "search", "sticker find",] track_obj = ['currentsong'] if self._comm in tracks_listing + track_obj: - # pylint: disable=w0142 if isinstance(ans, list): return [Track(**track) for track in ans] elif isinstance(ans, dict): @@ -160,9 +159,9 @@ class PlayerClient(Player): self.log.info('Player: Initialising cache!') self._cache = {'artists': frozenset(), 'nombid_artists': frozenset(),} - self._cache['artists'] = frozenset(self._execute('list', ['artist'])) + self._cache['artists'] = frozenset(filter(None, self._execute('list', ['artist']))) if Artist.use_mbid: - self._cache['nombid_artists'] = frozenset(self._execute('list', ['artist', 'musicbrainz_artistid', ''])) + self._cache['nombid_artists'] = frozenset(filter(None, self._execute('list', ['artist', 'musicbrainz_artistid', '']))) @blacklist(track=True) def find_track(self, artist, title=None): @@ -197,7 +196,7 @@ class PlayerClient(Player): # look for exact search w/ musicbrainz_artistid exact_m = self._execute('list', ['artist', 'musicbrainz_artistid', artist.mbid]) if exact_m: - [artist.add_alias(name) for name in exact_m] + _ = [artist.add_alias(name) for name in exact_m] found = True else: artist = Artist(name=artist.name) @@ -340,6 +339,18 @@ class PlayerClient(Player): def state(self): return str(self.status().get('state')) + @property + def playmode(self): + plm = {'repeat': None, + 'single': None, + 'random': None, + 'consume': None, + } + for key, val in self.status().items(): + if key in plm.keys(): + plm.update({key:bool(int(val))}) + return plm + @property def current(self): return self.currentsong() @@ -379,18 +390,8 @@ class PlayerClient(Player): if password: try: self._client.password(password) - - # Catch errors with the password command (e.g., wrong password) - except CommandError as err: - raise PlayerError("Could not connect to '%s': " - "password command failed: %s" % - (host, err)) - - # Catch all other possible errors except (MPDError, IOError) as err: - raise PlayerError("Could not connect to '%s': " - "error with password command: %s" % - (host, err)) + raise PlayerError("Could not connect to '%s': %s", (host, err)) # Controls we have sufficient rights needed_cmds = ['status', 'stats', 'add', 'find', \ 'search', 'currentsong', 'ping'] @@ -411,6 +412,8 @@ class PlayerClient(Player): self.log.info(self._client.tagtypes()) self.log.warning('Disabling MusicBrainzIdentifier') Artist.use_mbid = False + else: + self.log.trace('Available metadata: %s', self._client.tagtypes()) # pylint: disable=no-member else: self.log.warning('Use of MusicBrainzIdentifier disabled!') self.log.info('Consider using MusicBrainzIdentifier for your music library')