summaryrefslogtreecommitdiff
path: root/src/fixes.py
diff options
context:
space:
mode:
authormathieui <mathieui@mathieui.net>2014-04-27 22:38:24 +0200
committermathieui <mathieui@mathieui.net>2014-04-27 22:38:24 +0200
commit31716565a74bcc3c41569297c4c8ddfe731ba364 (patch)
treee414e99ceed61988956b60684e5bf14ead3ce898 /src/fixes.py
parent3fb3d8db3d566f231ea6ff6afd559a0185d8bff7 (diff)
downloadpoezio-31716565a74bcc3c41569297c4c8ddfe731ba364.tar.gz
poezio-31716565a74bcc3c41569297c4c8ddfe731ba364.tar.bz2
poezio-31716565a74bcc3c41569297c4c8ddfe731ba364.tar.xz
poezio-31716565a74bcc3c41569297c4c8ddfe731ba364.zip
Provide our own wrapper for checking the host category (ref #2511?)
xmpp.plugin['xep_0030'].has_identity appears to be unreliable at best, so we provide our own. Might help the case of carbons not displayed.
Diffstat (limited to 'src/fixes.py')
-rw-r--r--src/fixes.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/fixes.py b/src/fixes.py
index 69106c81..b7c8d03b 100644
--- a/src/fixes.py
+++ b/src/fixes.py
@@ -1,4 +1,3 @@
-from sleekxmpp.xmlstream import ET
"""
Module used to provide fixes for sleekxmpp functions not yet fixed
upstream.
@@ -7,6 +6,20 @@ TODO: Check that they are fixed and remove those hacks
"""
+from sleekxmpp.xmlstream import ET
+import logging
+
+log = logging.getLogger(__name__)
+
+def has_identity(xmpp, jid, identity):
+ try:
+ iq = xmpp.plugin['xep_0030'].get_info(jid=jid, block=True, timeout=1)
+ ident = lambda x: x[0]
+ return identity in map(ident, iq['disco_info']['identities'])
+ except:
+ log.debug('Traceback while retrieving identity', exc_info=True)
+ return False
+
def get_version(xmpp, jid, callback=None, **kwargs):
def handle_result(res):
if res and res['type'] != 'error':