2 # -*- coding: utf-8 -*-
3 # SPDX-FileCopyrightText: 2009,2010,2012,2019 kaliko <kaliko@azylum.org>
4 # SPDX-License-Identifier: GPL-3.0-or-later
9 from random import choice
10 from os.path import basename
18 class WakeUp(musicpd.MPDClient):
20 'prog': basename(__file__),
21 'description': 'Queues and plays an album chosen at random from a list. Albums list provided from CLI or text file.',
22 'epilog': 'Set MPD host/port in env. var'
26 musicpd.MPDClient.__init__(self)
30 parser = argparse.ArgumentParser(**self.__class__.script_info)
31 parser.add_argument('--version', action='version',
32 version='v%s' % VERSION)
33 parser.add_argument('-f', type=argparse.FileType('r'), dest='albumf',
34 help='text file, one album per line', nargs='?')
35 parser.add_argument('album', type=str,
36 nargs='*', help='album name')
37 args = parser.parse_args()
39 args.album.extend([line.rstrip(' \n')
40 for line in args.albumf.readlines()])
44 'No album names found on CLI, run "{} -h" for usage'.format(sys.argv[0]))
49 albums_list = self._get_args()
50 album = choice(albums_list)
51 print('Queueing "%s"' % album)
53 tracks = self.search('album', album)
55 print('No tracks found for "%s"' % album)
58 self.searchadd('album', album)
64 if __name__ == '__main__':
67 except KeyboardInterrupt:
71 # vim: ai ts=4 sw=4 sts=4 expandtab