From 506ca6991790cffb90c5b6e3b765237ccc136e1a Mon Sep 17 00:00:00 2001 From: mathieui Date: Mon, 23 Feb 2015 19:09:55 +0100 Subject: XEP-0030: allow get_info and get_items to return a coroutine --- slixmpp/plugins/xep_0030/disco.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'slixmpp/plugins/xep_0030/disco.py') diff --git a/slixmpp/plugins/xep_0030/disco.py b/slixmpp/plugins/xep_0030/disco.py index c8c18ea7..7833dffd 100644 --- a/slixmpp/plugins/xep_0030/disco.py +++ b/slixmpp/plugins/xep_0030/disco.py @@ -10,6 +10,7 @@ import logging from slixmpp import Iq from slixmpp.plugins import BasePlugin +from slixmpp import coroutine_wrapper from slixmpp.xmlstream.handler import Callback from slixmpp.xmlstream.matcher import StanzaPath from slixmpp.xmlstream import register_stanza_plugin, JID @@ -288,6 +289,7 @@ class XEP_0030(BasePlugin): 'cached': cached} return self.api['has_identity'](jid, node, ifrom, data) + @coroutine_wrapper def get_info(self, jid=None, node=None, local=None, cached=None, **kwargs): """ @@ -362,9 +364,10 @@ class XEP_0030(BasePlugin): iq['to'] = jid iq['type'] = 'get' iq['disco_info']['node'] = node if node else '' - iq.send(timeout=kwargs.get('timeout', None), - callback=kwargs.get('callback', None), - timeout_callback=kwargs.get('timeout_callback', None)) + return iq.send(timeout=kwargs.get('timeout', None), + callback=kwargs.get('callback', None), + coroutine=kwargs.get('coroutine', False), + timeout_callback=kwargs.get('timeout_callback', None)) def set_info(self, jid=None, node=None, info=None): """ @@ -375,6 +378,7 @@ class XEP_0030(BasePlugin): info = info['disco_info'] self.api['set_info'](jid, node, None, info) + @coroutine_wrapper def get_items(self, jid=None, node=None, local=False, **kwargs): """ Retrieve the disco#items results from a given JID/node combination. @@ -423,9 +427,10 @@ class XEP_0030(BasePlugin): raise NotImplementedError("XEP 0059 has not yet been fixed") return self.xmpp['xep_0059'].iterate(iq, 'disco_items') else: - iq.send(timeout=kwargs.get('timeout', None), - callback=kwargs.get('callback', None), - timeout_callback=kwargs.get('timeout_callback', None)) + return iq.send(timeout=kwargs.get('timeout', None), + callback=kwargs.get('callback', None), + coroutine=kwargs.get('coroutine', False), + timeout_callback=kwargs.get('timeout_callback', None)) def set_items(self, jid=None, node=None, **kwargs): """ -- cgit v1.2.3