jp, plugin merge-requests: used u'' as default for item id in pubsub arguments + fixed some required arguments:

u"" is now used as defaut item id instead of node, as it needs to be serialised anyway. This is temporary solution, as empty string can be used for item id (not forbidden by XEP-0060), but for now this is not handled correctly in jp/SàT (see https://bugs.goffi.org/bugs/view/289). Correct solution will probably need to use a special key in extra to mark empty string in id.
Added/removed some required values for node or item when it made sense.
This commit is contained in:
Goffi 2019-04-14 08:21:51 +02:00
commit d85f1b364f
5 changed files with 9 additions and 9 deletions

View file

@ -194,8 +194,8 @@ class MergeRequests(object):
extra=None, profile_key=C.PROF_KEY_NONE):
client, service, node, schema, item_id, extra = self._s.prepareBridgeSet(
service, node, schema, item_id, extra, profile_key)
d = self.set(client, service, node, repository, method, values, schema, item_id,
extra, deserialise=True)
d = self.set(client, service, node, repository, method, values, schema,
item_id or None, extra, deserialise=True)
d.addCallback(lambda ret: ret or u'')
return d

View file

@ -367,7 +367,8 @@ class Jp(object):
default = defaults.pop(u'item', _(u'last item'))
if default is not None:
item_help += _(u" (DEFAULT: {default})".format(default=default))
pubsub_group.add_argument("-i", "--item", type=unicode_decoder, help=item_help)
pubsub_group.add_argument("-i", "--item", type=unicode_decoder, default=u'',
help=item_help)
pubsub_group.add_argument("-L", "--last-item", action='store_true', help=_(u'retrieve last item'))
elif flags.multi_items:
# mutiple items, this activate several features: max-items, RSM, MAM

View file

@ -183,7 +183,7 @@ class Set(base.CommandBase, BlogPublishCommon):
self.pubsub_item = self.args.item
mb_data = {}
self.setMbDataFromArgs(mb_data)
if self.pubsub_item is not None:
if self.pubsub_item:
mb_data["id"] = self.pubsub_item
content = codecs.getreader("utf-8")(sys.stdin).read()
self.setMbDataContent(content, mb_data)
@ -541,7 +541,7 @@ class Edit(base.CommandBase, BlogPublishCommon, common.BaseEdit):
def publish(self, content, mb_data):
self.setMbDataContent(content, mb_data)
if self.pubsub_item is not None:
if self.pubsub_item:
mb_data["id"] = self.pubsub_item
mb_data = data_format.serialise(mb_data)

View file

@ -43,7 +43,7 @@ class Get(base.CommandBase):
"get",
use_output=C.OUTPUT_DICT,
use_pubsub=True,
pubsub_flags={C.NODE, C.ITEM, C.SINGLE_ITEM},
pubsub_flags={C.SINGLE_ITEM},
use_verbose=True,
help=_(u"get event data"),
)
@ -125,7 +125,6 @@ class Create(EventBase, base.CommandBase):
host,
"create",
use_pubsub=True,
pubsub_flags={C.NODE},
help=_("create or replace event"),
)
EventBase.__init__(self)

View file

@ -896,7 +896,7 @@ class Delete(base.CommandBase):
host,
"delete",
use_pubsub=True,
pubsub_flags={C.NODE, C.SINGLE_ITEM},
pubsub_flags={C.NODE, C.ITEM, C.SINGLE_ITEM},
help=_(u"delete an item"),
)
self.need_loop = True
@ -980,7 +980,7 @@ class Edit(base.CommandBase, common.BaseEdit):
error=True,
)
self.host.quit(1)
items = [item] if item is not None else []
items = [item] if item else []
item_raw = self.host.bridge.psItemsGet(
service, node, 1, items, "", {}, self.profile
)[0][0]