changeset 2276:5cd45a79775b

jp (common): added --last-item to take last item when no item id is found/given
author Goffi <goffi@goffi.org>
date Wed, 28 Jun 2017 01:20:44 +0200
parents 64e99bf0dfa2
children 637886ac35f6
files frontends/src/jp/cmd_pubsub.py frontends/src/jp/common.py
diffstat 2 files changed, 10 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/frontends/src/jp/cmd_pubsub.py	Tue Jun 27 19:38:22 2017 +0200
+++ b/frontends/src/jp/cmd_pubsub.py	Wed Jun 28 01:20:44 2017 +0200
@@ -300,7 +300,7 @@
 class Edit(base.CommandBase, common.BaseEdit):
 
     def __init__(self, host):
-        base.CommandBase.__init__(self, host, 'edit', use_verbose=True, use_pubsub_node_req=True, help=_(u'edit an existing or new pubsub item'))
+        base.CommandBase.__init__(self, host, 'edit', use_verbose=True, use_pubsub=True, help=_(u'edit an existing or new pubsub item'))
         common.BaseEdit.__init__(self, self.host, PUBSUB_TMP_DIR)
 
     def add_parser_options(self):
--- a/frontends/src/jp/common.py	Tue Jun 27 19:38:22 2017 +0200
+++ b/frontends/src/jp/common.py	Wed Jun 28 01:20:44 2017 +0200
@@ -103,7 +103,9 @@
         self.use_metadata = use_metadata
 
     def add_parser_options(self):
-        self.parser.add_argument("--force-item", action='store_true', help=_(u"don't use magic and take item argument as an actual item"))
+        group = self.parser.add_mutually_exclusive_group()
+        group.add_argument("--force-item", action='store_true', help=_(u"don't use magic and take item argument as an actual item"))
+        group.add_argument("--last-item", action='store_true', help=_(u"take last item instead of creating a new one if no item id is found"))
 
     def secureUnlink(self, path):
         """Unlink given path after keeping it for a while
@@ -375,11 +377,16 @@
                     self.disp(u'No node found in xmpp: URI, can\'t retrieve item', error=True)
                     self.host.quit(1)
                 pubsub_item = pubsub_data.get('item',[None])[0]
-                if pubsub_item is not None:
+                if pubsub_item is None and self.args.last_item:
+                    command = 'last'
+                elif pubsub_item is not None:
                     command = 'edit' # XXX: edit command is only used internaly, it similar to last, but with the item given in the URL
                 else:
                     command = 'new'
 
+        if self.args.last_item and command != 'last':
+            self.parser.error(_(u"--last-item can't be used with a specified item"))
+
         if not force_item and command in ('new', 'last', 'edit'):
             # we need a temporary file
             tmp_suff = '.' + self.getTmpSuff()