summaryrefslogtreecommitdiff
path: root/sleekxmpp
diff options
context:
space:
mode:
Diffstat (limited to 'sleekxmpp')
-rw-r--r--sleekxmpp/plugins/xep_0153/vcard_avatar.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/sleekxmpp/plugins/xep_0153/vcard_avatar.py b/sleekxmpp/plugins/xep_0153/vcard_avatar.py
index d940ead1..c74713e5 100644
--- a/sleekxmpp/plugins/xep_0153/vcard_avatar.py
+++ b/sleekxmpp/plugins/xep_0153/vcard_avatar.py
@@ -12,6 +12,7 @@ import threading
from sleekxmpp import JID
from sleekxmpp.stanza import Presence
+from sleekxmpp.exceptions import XMPPError
from sleekxmpp.xmlstream import register_stanza_plugin
from sleekxmpp.xmlstream.matcher import StanzaPath
from sleekxmpp.xmlstream.handler import Callback
@@ -103,15 +104,18 @@ class XEP_0153(BasePlugin):
if own_jid:
self.xmpp.roster[jid].send_last_presence()
- iq = self.xmpp['xep_0054'].get_vcard(jid=jid.bare, ifrom=ifrom)
+ try:
+ iq = self.xmpp['xep_0054'].get_vcard(jid=jid.bare, ifrom=ifrom)
- data = iq['vcard_temp']['PHOTO']['BINVAL']
- if not data:
- new_hash = ''
- else:
- new_hash = hashlib.sha1(data).hexdigest()
+ data = iq['vcard_temp']['PHOTO']['BINVAL']
+ if not data:
+ new_hash = ''
+ else:
+ new_hash = hashlib.sha1(data).hexdigest()
- self.api['set_hash'](jid, args=new_hash)
+ self.api['set_hash'](jid, args=new_hash)
+ except XMPPError:
+ log.debug('Could not retrieve vCard for %s' % jid)
def _recv_presence(self, pres):
if not pres.match('presence/vcard_temp_update'):