X-Git-Url: https://git.kaliko.me/?a=blobdiff_plain;f=sima%2Fclient.py;h=c04b259a90a147e4d3545012f8232fcd8ff39270;hb=14a769add6d435a7ad7db4d36074dc79511af4e3;hp=3d10c483d326edf36b4c391f5a9010d74e52cf9e;hpb=e8bcefbcb4a56e111af402bdb705436f42cc93e0;p=mpd-sima.git diff --git a/sima/client.py b/sima/client.py index 3d10c48..c04b259 100644 --- a/sima/client.py +++ b/sima/client.py @@ -66,16 +66,17 @@ def blacklist(artist=False, album=False, track=False): #bl_getter = next(fn for fn, bl in zip(bl_fun, boolgen) if bl is True) bl_getter = next(dropwhile(lambda _: not next(boolgen), bl_fun)) #cls.log.debug('using {0} as bl filter'.format(bl_getter.__name__)) - results = func(*args, **kwargs) - for elem in results: + results = list() + for elem in func(*args, **kwargs): if bl_getter(elem, add_not=True): - cls.log.info('Blacklisted: {0}'.format(elem)) - results.remove(elem) + cls.log.debug('Blacklisted "{0}"'.format(elem)) + continue if track and cls.database.get_bl_album(elem, add_not=True): # filter album as well in track mode # (artist have already been) - cls.log.info('Blacklisted: {0}'.format(elem)) - results.remove(elem) + cls.log.debug('Blacklisted alb. "{0.album}"'.format(elem)) + continue + results.append(elem) return results return wrapper return decorated @@ -169,6 +170,7 @@ class PlayerClient(Player): } self._cache['artists'] = frozenset(self._client.list('artist')) + @blacklist(track=True) def find_track(self, artist, title=None): #return getattr(self, 'find')('artist', artist, 'title', title) if title: