]> kaliko git repositories - mpd-goodies.git/blobdiff - crop
* rewrote mtopls
[mpd-goodies.git] / crop
diff --git a/crop b/crop
index 70e01ea870b4993816889319fb1388f207365fc8..2b255f18aa3f4095bf8c4888fe2d2c7fc726804e 100755 (executable)
--- a/crop
+++ b/crop
@@ -26,41 +26,49 @@ from lib.startop import StartOpt
 
 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