Add a wrapper to get_info/get_items functions
(and fix caps in the process)
This commit is contained in:
parent
04bff00171
commit
f7164d35d2
@ -9,6 +9,7 @@
|
||||
import logging
|
||||
|
||||
from slixmpp import Iq
|
||||
from slixmpp import future_wrapper
|
||||
from slixmpp.plugins import BasePlugin
|
||||
from slixmpp.xmlstream.handler import Callback
|
||||
from slixmpp.xmlstream.matcher import StanzaPath
|
||||
@ -294,6 +295,7 @@ class XEP_0030(BasePlugin):
|
||||
'cached': cached}
|
||||
return self.api['has_identity'](jid, node, ifrom, data)
|
||||
|
||||
@future_wrapper
|
||||
def get_info(self, jid=None, node=None, local=None,
|
||||
cached=None, **kwargs):
|
||||
"""
|
||||
@ -381,6 +383,7 @@ class XEP_0030(BasePlugin):
|
||||
info = info['disco_info']
|
||||
self.api['set_info'](jid, node, None, info)
|
||||
|
||||
@future_wrapper
|
||||
def get_items(self, jid=None, node=None, local=False, **kwargs):
|
||||
"""
|
||||
Retrieve the disco#items results from a given JID/node combination.
|
||||
|
@ -280,9 +280,10 @@ class XEP_0115(BasePlugin):
|
||||
binary = hash(S.encode('utf8')).digest()
|
||||
return base64.b64encode(binary).decode('utf-8')
|
||||
|
||||
@asyncio.coroutine
|
||||
def update_caps(self, jid=None, node=None, preserve=False):
|
||||
try:
|
||||
info = self.xmpp['xep_0030'].get_info(jid, node, local=True)
|
||||
info = yield from self.xmpp['xep_0030'].get_info(jid, node, local=True)
|
||||
if isinstance(info, Iq):
|
||||
info = info['disco_info']
|
||||
ver = self.generate_verstring(info, self.hash)
|
||||
|
@ -8,6 +8,7 @@
|
||||
|
||||
import logging
|
||||
|
||||
from slixmpp import asyncio
|
||||
from slixmpp.xmlstream import register_stanza_plugin
|
||||
from slixmpp.plugins.base import BasePlugin, register_plugin
|
||||
|
||||
@ -61,7 +62,7 @@ class XEP_0163(BasePlugin):
|
||||
for ns in namespace:
|
||||
self.xmpp['xep_0030'].add_feature('%s+notify' % ns,
|
||||
jid=jid)
|
||||
self.xmpp['xep_0115'].update_caps(jid)
|
||||
asyncio.async(self.xmpp['xep_0115'].update_caps(jid))
|
||||
|
||||
def remove_interest(self, namespace, jid=None):
|
||||
"""
|
||||
@ -80,7 +81,7 @@ class XEP_0163(BasePlugin):
|
||||
for ns in namespace:
|
||||
self.xmpp['xep_0030'].del_feature(jid=jid,
|
||||
feature='%s+notify' % namespace)
|
||||
self.xmpp['xep_0115'].update_caps(jid)
|
||||
asyncio.async(self.xmpp['xep_0115'].update_caps(jid))
|
||||
|
||||
def publish(self, stanza, node=None, id=None, options=None, ifrom=None,
|
||||
timeout_callback=None, callback=None, timeout=None):
|
||||
|
Loading…
Reference in New Issue
Block a user