comparison src/plugins/plugin_xep_0329.py @ 2528:65e278997715

component file sharing: comments metadata: new <comments> element is added to file metadata, it contains the URL to the comments virtual node and the count of comments (this way client knows if it make sense to request comments or not). Fixed triggers in plugin XEP-0264 (return value was missing). New trigger in plugin XEP-0329 to allow component to add metadata (used here for comments url).
author Goffi <goffi@goffi.org>
date Fri, 16 Mar 2018 18:43:11 +0100
parents a201194fc461
children 8d82a62fa098
comparison
equal deleted inserted replaced
2527:a201194fc461 2528:65e278997715
421 directory_elt[u'name'] = name 421 directory_elt[u'name'] = name
422 client.send(iq_result_elt) 422 client.send(iq_result_elt)
423 423
424 @defer.inlineCallbacks 424 @defer.inlineCallbacks
425 def _compGetFilesFromNodeCb(self, client, iq_elt, owner, node_path): 425 def _compGetFilesFromNodeCb(self, client, iq_elt, owner, node_path):
426 """retrieve files from local files repository according to permissions
427
428 result stanza is then built and sent to requestor
429 @trigger XEP-0329_compGetFilesFromNode(client, iq_elt, owner, node_path, files_data): can be used to add data/elements
430 """
426 peer_jid = jid.JID(iq_elt['from']) 431 peer_jid = jid.JID(iq_elt['from'])
427 try: 432 try:
428 files_data = yield self.host.memory.getFiles(client, peer_jid=peer_jid, path=node_path, owner=owner) 433 files_data = yield self.host.memory.getFiles(client, peer_jid=peer_jid, path=node_path, owner=owner)
429 except exceptions.NotFound: 434 except exceptions.NotFound:
430 self._iqError(client, iq_elt) 435 self._iqError(client, iq_elt)
431 return 436 return
432 iq_result_elt = xmlstream.toResponse(iq_elt, 'result') 437 iq_result_elt = xmlstream.toResponse(iq_elt, 'result')
433 query_elt = iq_result_elt.addElement((NS_FIS, 'query')) 438 query_elt = iq_result_elt.addElement((NS_FIS, 'query'))
434 query_elt[u'node'] = node_path 439 query_elt[u'node'] = node_path
440 if not self.host.trigger.point(u'XEP-0329_compGetFilesFromNode', client, iq_elt, owner, node_path, files_data):
441 return
435 for file_data in files_data: 442 for file_data in files_data:
436 file_elt = self._jf.buildFileElementFromDict(file_data, 443 file_elt = self._jf.buildFileElementFromDict(file_data,
437 modified=file_data.get(u'modified', file_data[u'created'])) 444 modified=file_data.get(u'modified', file_data[u'created']))
438 query_elt.addChild(file_elt) 445 query_elt.addChild(file_elt)
439 client.send(iq_result_elt) 446 client.send(iq_result_elt)