2 # -*- coding: utf-8 -*-
4 # Copyright (c) 2009, 2010 Efrim <efrim@azylum.org> {{{
6 # This program is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation, either version 3 of the License, or
9 # (at your option) any later version.
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with this program. If not, see <http://www.gnu.org/licenses/>.
24 from lib.mpdclass import MPDClass
25 from lib.startop import StartOpt
30 class Nalbum(StartOpt, MPDClass):
36 'description': 'Seek to next album in playlist.',
41 StartOpt.__init__(self, self.__class__.script_info, [])
42 MPDClass.__init__(self)
46 """Retrieve playlist from current song to the end."""
47 if 'song' not in self.client.status():
48 print "No current song set in MPD!"
49 self.client.disconnect()
51 current_album = str(self.client.currentsong().get('album', 'TAG MISSING'))
52 current_song_pos = int(self.client.currentsong().get('pos'))
53 print 'Current album: "%s"' % current_album
54 next_album_pos = current_song_pos
56 while album == current_album:
58 pl_length = int(self.client.status().get('playlistlength')) - 1
59 if pl_length < next_album_pos:
60 print 'Next album not found in the playlitst!'
61 self.client.disconnect()
63 album = self.client.playlistinfo(next_album_pos)[0].get('album', 'TAG MISSING')
64 print 'Next album appears to be: "%s"' % album
69 print 'Connecting %s:%i' % (self.cli_options.host, self.cli_options.port)
71 self.client.play(self._get_next())
72 self.client.disconnect()
77 if __name__ == '__main__':
80 except KeyboardInterrupt:
81 sys.stdout.write('exit')
84 # vim: ai ts=4 sw=4 sts=4 expandtab