jp: jp asyncio port:
/!\ this commit is huge. Jp is temporarily not working with `dbus` bridge /!\ This patch implements the port of jp to asyncio, so it is now correctly using the bridge asynchronously, and it can be used with bridges like `pb`. This also simplify the code, notably for things which were previously implemented with many callbacks (like pagination with RSM). During the process, some behaviours have been modified/fixed, in jp and backends, check diff for details.
This commit is contained in:
parent
5cee4fbab7
commit
76aadbb3fb
1 changed files with 3299 additions and 3300 deletions
|
|
@ -381,7 +381,7 @@ class Events(object):
|
|||
|
||||
if register:
|
||||
yield self.register(
|
||||
client, service, None, {}, node, event_id, event_elt, creator=True)
|
||||
client, None, {}, service, node, event_id, item_elt, creator=True)
|
||||
defer.returnValue(node)
|
||||
|
||||
def _eventModify(self, service, node, id_, timestamp_update, data_update,
|
||||
|
|
@ -447,24 +447,29 @@ class Events(object):
|
|||
events.append((timestamp, data))
|
||||
defer.returnValue(events)
|
||||
|
||||
def _eventInviteeGet(self, service, node, profile_key):
|
||||
def _eventInviteeGet(self, service, node, invitee_jid_s, profile_key):
|
||||
service = jid.JID(service) if service else None
|
||||
node = node if node else NS_EVENT
|
||||
client = self.host.getClient(profile_key)
|
||||
return self.eventInviteeGet(client, service, node)
|
||||
invitee_jid = jid.JID(invitee_jid_s) if invitee_jid_s else None
|
||||
return self.eventInviteeGet(client, service, node, invitee_jid)
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def eventInviteeGet(self, client, service, node):
|
||||
def eventInviteeGet(self, client, service, node, invitee_jid=None):
|
||||
"""Retrieve attendance from event node
|
||||
|
||||
@param service(unicode, None): PubSub service
|
||||
@param node(unicode): PubSub node of the event
|
||||
@param node(unicode): PubSub node of the event's invitees
|
||||
@param invitee_jid(jid.JId, None): jid of the invitee to retrieve (None to
|
||||
retrieve profile's invitation). The bare jid correspond to the PubSub item id.
|
||||
@return (dict): a dict with current attendance status,
|
||||
an empty dict is returned if nothing has been answered yed
|
||||
"""
|
||||
if invitee_jid is None:
|
||||
invitee_jid = client.jid
|
||||
try:
|
||||
items, metadata = yield self._p.getItems(
|
||||
client, service, node, item_ids=[client.jid.userhost()]
|
||||
client, service, node, item_ids=[invitee_jid.userhost()]
|
||||
)
|
||||
event_elt = next(items[0].elements(NS_EVENT, "invitee"))
|
||||
except (exceptions.NotFound, IndexError):
|
||||
|
|
|
|||
Loading…
Reference in a new issue