From a3d29f073d721c4a34ea7f702a84eb1f4d639a6d Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Wed, 10 Feb 2010 20:36:55 +0100 Subject: mpclient: add playlistid() func also fix PlaylistEntryRef --- nephilim/mpclient.py | 12 ++++++++++++ nephilim/song.py | 12 ++++++------ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/nephilim/mpclient.py b/nephilim/mpclient.py index ec0fd54..ae59ebf 100644 --- a/nephilim/mpclient.py +++ b/nephilim/mpclient.py @@ -138,9 +138,21 @@ class MPClient(QtCore.QObject): yield Song(song) raise StopIteration def findadd(self, *args): + """Find tracks with given tags and add them to playlist. Takes + a list of (tag, value).""" + self.logger.info('Findadd %s.'%unicode(args)) if not self.__check_command_ok('findadd'): return return self._client.findadd(*args) + def playlistid(self, plid): + """Return a song with a given playlist id.""" + self.logger.info('Getting id %s.'%('of id %s'%(plid) if plid else '')) + if not self.__check_command_ok('play'): + return + ret = None + for it in self._client.playlistid(plid): + ret = Song(it) + return ret def update_db(self, paths = None): """Starts MPD database update.""" diff --git a/nephilim/song.py b/nephilim/song.py index 454b53d..607d4a6 100644 --- a/nephilim/song.py +++ b/nephilim/song.py @@ -105,21 +105,21 @@ class PlaylistEntryRef: """This class stores a reference to a playlist entry instead of full metadata to conserve memory. Song's tags can be accessed as in Song, but it requires a call to MPD for each tag. """ - id = None + plid = None mpclient = None - def __init__(self, mpclient, id): + def __init__(self, mpclient, plid): self.mpclient = mpclient - self.id = id + self.plid = plid def __getitem__(self, key): - return self.id if key == 'id' else self.song()[key] + return self.plid if key == 'id' else self.song()[key] def __nonzero__(self): - return self.id != '-1' + return self.plid != '-1' def song(self): try: - return Song(self.mpclient.playlistid(id)[0]) + return self.mpclient.playlistid(self.plid) except IndexError: return Song({}) -- cgit v1.2.3