X-Git-Url: http://git.kaliko.me/?p=mpd-goodies.git;a=blobdiff_plain;f=crop;h=2b255f18aa3f4095bf8c4888fe2d2c7fc726804e;hp=70e01ea870b4993816889319fb1388f207365fc8;hb=fb86eb100710617fea5b6d0e4a7bc452fd016732;hpb=14ccd8fb5a6584037b6f7e62c33b1648e3430d23 diff --git a/crop b/crop index 70e01ea..2b255f1 100755 --- a/crop +++ b/crop @@ -26,41 +26,49 @@ from lib.startop import StartOpt NAME = 'crop' VERSION = '0.1' -USAGE = """Usage: +USAGE = 'USAGE: %prog [--help] | [ ]' -crop -S -n -""" - -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 tracks before currently played, removed others.', + 'prog_name': NAME, + 'description': 'Keep 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