From d85f1b364f54bf7899379629ebcf59d8d26cafa1 Mon Sep 17 00:00:00 2001 From: Goffi Date: Sun, 14 Apr 2019 08:21:51 +0200 Subject: [PATCH] jp, plugin merge-requests: used u'' as default for item id in pubsub arguments + fixed some required arguments: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- sat/plugins/plugin_misc_merge_requests.py | 4 ++-- sat_frontends/jp/base.py | 3 ++- sat_frontends/jp/cmd_blog.py | 4 ++-- sat_frontends/jp/cmd_event.py | 3 +-- sat_frontends/jp/cmd_pubsub.py | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/sat/plugins/plugin_misc_merge_requests.py b/sat/plugins/plugin_misc_merge_requests.py index 980af5bb..c1f4a35d 100644 --- a/sat/plugins/plugin_misc_merge_requests.py +++ b/sat/plugins/plugin_misc_merge_requests.py @@ -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 diff --git a/sat_frontends/jp/base.py b/sat_frontends/jp/base.py index cc7a9be7..2de0faa1 100644 --- a/sat_frontends/jp/base.py +++ b/sat_frontends/jp/base.py @@ -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 diff --git a/sat_frontends/jp/cmd_blog.py b/sat_frontends/jp/cmd_blog.py index 44469463..ec0e86d5 100644 --- a/sat_frontends/jp/cmd_blog.py +++ b/sat_frontends/jp/cmd_blog.py @@ -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) diff --git a/sat_frontends/jp/cmd_event.py b/sat_frontends/jp/cmd_event.py index 58e032cc..8e2728c2 100644 --- a/sat_frontends/jp/cmd_event.py +++ b/sat_frontends/jp/cmd_event.py @@ -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) diff --git a/sat_frontends/jp/cmd_pubsub.py b/sat_frontends/jp/cmd_pubsub.py index bcb0c11b..dba84388 100644 --- a/sat_frontends/jp/cmd_pubsub.py +++ b/sat_frontends/jp/cmd_pubsub.py @@ -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]