diff options
-rw-r--r-- | slixmpp/plugins/xep_0092/version.py | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/slixmpp/plugins/xep_0092/version.py b/slixmpp/plugins/xep_0092/version.py index a60acd99..3a7b949f 100644 --- a/slixmpp/plugins/xep_0092/version.py +++ b/slixmpp/plugins/xep_0092/version.py @@ -8,8 +8,12 @@ import logging +from asyncio import Future +from typing import Optional + import slixmpp -from slixmpp import Iq +from slixmpp import JID +from slixmpp.stanza import Iq from slixmpp.xmlstream import register_stanza_plugin from slixmpp.xmlstream.handler import Callback from slixmpp.xmlstream.matcher import StanzaPath @@ -57,12 +61,11 @@ class XEP_0092(BasePlugin): def session_bind(self, jid): self.xmpp.plugin['xep_0030'].add_feature('jabber:iq:version') - def _handle_version(self, iq): + def _handle_version(self, iq: Iq): """ Respond to a software version query. - Arguments: - iq -- The Iq stanza containing the software version query. + :param iq: The Iq stanza containing the software version query. """ iq = iq.reply() if self.software_name: @@ -75,18 +78,12 @@ class XEP_0092(BasePlugin): iq['error']['condition'] = 'service-unavailable' iq.send() - def get_version(self, jid, ifrom=None, timeout=None, callback=None, - timeout_callback=None): + def get_version(self, jid: JID, ifrom: Optional[JID] = None, **iqkwargs) -> Future: """ Retrieve the software version of a remote agent. - Arguments: - jid -- The JID of the entity to query. + :param jid: The JID of the entity to query. """ - iq = self.xmpp.Iq() - iq['to'] = jid - iq['from'] = ifrom - iq['type'] = 'get' + iq = self.xmpp.make_iq_get(ito=jid, ifrom=ifrom) iq['query'] = Version.namespace - return iq.send(timeout=timeout, callback=callback, - timeout_callback=timeout_callback) + return iq.send(**iqkwargs) |