summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxime “pep” Buquet <pep@bouah.net>2018-07-01 01:36:26 +0100
committerMaxime “pep” Buquet <pep@bouah.net>2018-07-01 01:36:26 +0100
commitcaae713dd63a045e28260df962e97e98fb1c0a3a (patch)
treec5d10470dbb97e479e1c027edd3d211f5582dd08
parentdf0198abfee83b2a070a7cc2f1a543837189a4c5 (diff)
downloadslixmpp-caae713dd63a045e28260df962e97e98fb1c0a3a.tar.gz
slixmpp-caae713dd63a045e28260df962e97e98fb1c0a3a.tar.bz2
slixmpp-caae713dd63a045e28260df962e97e98fb1c0a3a.tar.xz
slixmpp-caae713dd63a045e28260df962e97e98fb1c0a3a.zip
xep_0030: rename find_identities; return all domain infos and let caller filter itself
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
-rw-r--r--slixmpp/plugins/xep_0030/disco.py10
-rw-r--r--slixmpp/plugins/xep_0363/http_upload.py9
2 files changed, 9 insertions, 10 deletions
diff --git a/slixmpp/plugins/xep_0030/disco.py b/slixmpp/plugins/xep_0030/disco.py
index f16d36d2..ea9a33f4 100644
--- a/slixmpp/plugins/xep_0030/disco.py
+++ b/slixmpp/plugins/xep_0030/disco.py
@@ -298,8 +298,8 @@ class XEP_0030(BasePlugin):
'cached': cached}
return self.api['has_identity'](jid, node, ifrom, data)
- async def find_identities(category, type_, domain=None, timeout=None,
- cached=True, callback=None, **kwargs):
+ async def get_info_from_domain(self, domain=None, timeout=None,
+ cached=True, callback=None, **kwargs):
if domain is None:
domain = self.xmpp.boundjid.domain
@@ -317,11 +317,7 @@ class XEP_0030(BasePlugin):
self.domain_infos[domain] = [
future.result() for future in info_futures]
- results = []
- for info in self.domain_infos[domain]:
- for identity in info['disco_info']['identities']:
- if identity[0] == category and identity[1] == type_:
- results.append(info)
+ results = self.domain_infos[domain]
if callback is not None:
callback(results)
diff --git a/slixmpp/plugins/xep_0363/http_upload.py b/slixmpp/plugins/xep_0363/http_upload.py
index 3c0f2b3e..65894975 100644
--- a/slixmpp/plugins/xep_0363/http_upload.py
+++ b/slixmpp/plugins/xep_0363/http_upload.py
@@ -69,9 +69,12 @@ class XEP_0363(BasePlugin):
self.xmpp.event('http_upload_request', iq)
async def find_upload_service(self, timeout=None):
- results = await self.xmpp['xep_0030'].find_identities('store', 'file')
- if results:
- return results[0]
+ results = await self.xmpp['xep_0030'].get_info_from_domain()
+
+ for info in results:
+ for identity in info['disco_info']['identities']:
+ if identity[0] == 'store' and identity[1] == 'file':
+ return info
def request_slot(self, jid, filename, size, content_type=None, ifrom=None,
timeout=None, callback=None, timeout_callback=None):