From 5eabc5a423a48c242ab490b8798298086aab6eb1 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Fri, 25 Jun 2010 01:24:18 +0200 Subject: [PATCH] CurrentPlaylistController.remove() takes criterias --- docs/changes.rst | 4 ++++ mopidy/backends/__init__.py | 10 ++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/docs/changes.rst b/docs/changes.rst index 267df472..a274e37e 100644 --- a/docs/changes.rst +++ b/docs/changes.rst @@ -31,6 +31,10 @@ We got an updated :doc:`release roadmap `! lists of :class:`mopidy.models.Track` instead of :class:`mopidy.models.Playlist`, as none of the other fields on the ``Playlist`` model was in use. + - :meth:`mopidy.backends.BaseCurrentPlaylistController.remove()`` now takes + criterias, just like + :meth:`mopidy.backends.BaseCurrentPlaylistController.get()``, instead of + the track to remove. 0.1.0a2 (2010-06-02) diff --git a/mopidy/backends/__init__.py b/mopidy/backends/__init__.py index 3983d94a..260f1ddb 100644 --- a/mopidy/backends/__init__.py +++ b/mopidy/backends/__init__.py @@ -198,17 +198,19 @@ class BaseCurrentPlaylistController(object): to_position += 1 self.tracks = new_tracks - def remove(self, track): + def remove(self, **criteria): """ Remove the track from the current playlist. - :param track: track to remove + Uses :meth:`get` to lookup the track to remove. + + :param criteria: on or more criteria to match by + :type criteria: dict :type track: :class:`mopidy.models.Track` """ + track = self.get(**criteria) tracks = self.tracks - assert track in tracks, 'track must be in playlist' - position = tracks.index(track) del tracks[position] self.tracks = tracks