NAME = 'crop'
VERSION = '0.1'
-USAGE = """Usage:
+USAGE = 'USAGE: %prog [--help] | [ <n> ]'
-crop -S <server> -n <nb_tracks>
-"""
-
-CROP_OPTS = list([
- {
- 'sw': ['-n', '--nbtracks'],
- 'type': 'int',
- 'dest': 'nb_tracks',
- 'default': 3,
- 'help': 'Number of tracks to keep before the current one.'},
- ])
-
-class Crop(StartOpt):
+class Crop(StartOpt, MPDClass):
"""
"""
script_info = dict({
'version': VERSION,
- 'prog_name': 'crop',
- 'description': 'Keep <n> tracks before currently played, removed others.',
+ 'prog_name': NAME,
+ 'description': 'Keep <n> tracks before currently played, removed others. Default is to keep 6 tracks.',
+ 'usage': USAGE,
})
def __init__(self):
""""""
- StartOpt.__init__(self, Crop.script_info, CROP_OPTS)
+ StartOpt.__init__(self, self.__class__.script_info, [])
+ MPDClass.__init__(self)
+ self.nb_tracks = 6
+ self._get_arg()
self._run()
- def _run(self):
+ def _get_arg(self):
""""""
- pass
+ if not self.cli_args:
+ return True
+ try:
+ self.nb_tracks = int(self.cli_args[0])
+ except ValueError, err:
+ self.parser.error('invalid argument, not a natural number? (%s)' % err)
- def crop(self):
+ def _run(self):
""""""
- NotImplemented
+ print 'Connecting %s:%i' % (self.cli_options.host, self.cli_options.port)
+ print 'Keeping %i tracks' % self.nb_tracks
+ self.mpdConnect()
+ current_pos = int(self.client.currentsong().get('pos'))
+ if current_pos <= self.nb_tracks:
+ self.client.disconnect()
+ sys.exit(0)
+ while current_pos > self.nb_tracks:
+ self.client.delete(0)
+ current_pos = int(self.client.currentsong().get('pos'))
+ self.client.disconnect()
+ sys.exit(0)
# Script starts here