diff options
author | mathieui <mathieui@mathieui.net> | 2014-04-27 22:38:24 +0200 |
---|---|---|
committer | mathieui <mathieui@mathieui.net> | 2014-04-27 22:38:24 +0200 |
commit | 31716565a74bcc3c41569297c4c8ddfe731ba364 (patch) | |
tree | e414e99ceed61988956b60684e5bf14ead3ce898 /src/fixes.py | |
parent | 3fb3d8db3d566f231ea6ff6afd559a0185d8bff7 (diff) | |
download | poezio-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.py | 15 |
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': |