From be2bb0ff3f816dc83333bea55e50b877bd22873d Mon Sep 17 00:00:00 2001 From: Goffi Date: Wed, 28 Jun 2017 01:20:44 +0200 Subject: [PATCH] jp (common): added --last-item to take last item when no item id is found/given --- frontends/src/jp/cmd_pubsub.py | 2 +- frontends/src/jp/common.py | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/frontends/src/jp/cmd_pubsub.py b/frontends/src/jp/cmd_pubsub.py index a6ef9797..6d9423c2 100644 --- a/frontends/src/jp/cmd_pubsub.py +++ b/frontends/src/jp/cmd_pubsub.py @@ -300,7 +300,7 @@ class Get(base.CommandBase): 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): diff --git a/frontends/src/jp/common.py b/frontends/src/jp/common.py index b7d7a090..c068ab31 100644 --- a/frontends/src/jp/common.py +++ b/frontends/src/jp/common.py @@ -103,7 +103,9 @@ class BaseEdit(object): 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 @@ class BaseEdit(object): 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()