comparison sat/plugins/plugin_exp_pubsub_schema.py @ 2807:0b7ce5daee9b

plugin XEP-0277: blog items data are now entirely serialised before going to bridge: So far, and for historical reasons, blog items data where serialised using a unicode: unicode dict, which was causing trouble for many types of values (timestamps, booleans, lists). This patch changes it by serialising the whole items before going to bridge, and deserialising it when going back. This way, complex data can be used easily in items. This impact psEvent and serItemsData* methods which are renamed transItemsData* because there are not always serialising anymore (a new argument "serialise" allows to specify it). When editing a blog post in jp, metadata are now more easy to manipulate, specially lists like tags.
author Goffi <goffi@goffi.org>
date Sat, 23 Feb 2019 18:59:00 +0100
parents 76ebecdb9b1e
children e2cb04b381bb
comparison
equal deleted inserted replaced
2806:2400cad2dace 2807:0b7ce5daee9b
249 sub_id or None, 249 sub_id or None,
250 extra.rsm_request, 250 extra.rsm_request,
251 extra.extra, 251 extra.extra,
252 form_ns=form_ns or None, 252 form_ns=form_ns or None,
253 ) 253 )
254 d.addCallback(self._p.serItemsData) 254 d.addCallback(self._p.transItemsData)
255 return d 255 return d
256 256
257 @defer.inlineCallbacks 257 @defer.inlineCallbacks
258 def getDataFormItems(self, client, service, nodeIdentifier, schema=None, 258 def getDataFormItems(self, client, service, nodeIdentifier, schema=None,
259 max_items=None, item_ids=None, sub_id=None, rsm_request=None, 259 max_items=None, item_ids=None, sub_id=None, rsm_request=None,
492 extra=extra.extra, 492 extra=extra.extra,
493 default_node=default_node, 493 default_node=default_node,
494 form_ns=form_ns, 494 form_ns=form_ns,
495 filters=filters, 495 filters=filters,
496 ) 496 )
497 d.addCallback(self._p.serItemsData) 497 d.addCallback(self._p.transItemsData)
498 return d 498 return d
499 499
500 def prepareBridgeSet(self, service, node, schema, item_id, extra, profile_key): 500 def prepareBridgeSet(self, service, node, schema, item_id, extra, profile_key):
501 """Parse arguments received from bridge *Set methods and return higher level data 501 """Parse arguments received from bridge *Set methods and return higher level data
502 502