diff options
Diffstat (limited to 'sleekxmpp/plugins/xep_0054')
-rw-r--r-- | sleekxmpp/plugins/xep_0054/stanza.py | 4 | ||||
-rw-r--r-- | sleekxmpp/plugins/xep_0054/vcard_temp.py | 20 |
2 files changed, 17 insertions, 7 deletions
diff --git a/sleekxmpp/plugins/xep_0054/stanza.py b/sleekxmpp/plugins/xep_0054/stanza.py index 75b69d3e..72da0b51 100644 --- a/sleekxmpp/plugins/xep_0054/stanza.py +++ b/sleekxmpp/plugins/xep_0054/stanza.py @@ -1,8 +1,7 @@ import base64 import datetime as dt -from sleekxmpp.thirdparty.suelta.util import bytes - +from sleekxmpp.util import bytes from sleekxmpp.xmlstream import ElementBase, ET, register_stanza_plugin, JID from sleekxmpp.plugins import xep_0082 @@ -542,6 +541,7 @@ register_stanza_plugin(VCardTemp, Logo, iterable=True) register_stanza_plugin(VCardTemp, Mailer, iterable=True) register_stanza_plugin(VCardTemp, Note, iterable=True) register_stanza_plugin(VCardTemp, Nickname, iterable=True) +register_stanza_plugin(VCardTemp, Org, iterable=True) register_stanza_plugin(VCardTemp, Photo, iterable=True) register_stanza_plugin(VCardTemp, ProdID, iterable=True) register_stanza_plugin(VCardTemp, Rev, iterable=True) diff --git a/sleekxmpp/plugins/xep_0054/vcard_temp.py b/sleekxmpp/plugins/xep_0054/vcard_temp.py index 83cbccf8..97da8c7c 100644 --- a/sleekxmpp/plugins/xep_0054/vcard_temp.py +++ b/sleekxmpp/plugins/xep_0054/vcard_temp.py @@ -8,7 +8,7 @@ import logging -from sleekxmpp import Iq +from sleekxmpp import JID, Iq from sleekxmpp.exceptions import XMPPError from sleekxmpp.xmlstream import register_stanza_plugin from sleekxmpp.xmlstream.handler import Callback @@ -59,10 +59,20 @@ class XEP_0054(BasePlugin): def make_vcard(self): return VCardTemp() - def get_vcard(self, jid=None, ifrom=None, local=False, cached=False, + def get_vcard(self, jid=None, ifrom=None, local=None, cached=False, block=True, callback=None, timeout=None): - if self.xmpp.is_component and jid.domain == self.xmpp.boundjid.domain: - local = True + if local is None: + if jid is not None and not isinstance(jid, JID): + jid = JID(jid) + if self.xmpp.is_component: + if jid.domain == self.xmpp.boundjid.domain: + local = True + else: + if str(jid) == str(self.xmpp.boundjid): + local = True + jid = jid.full + elif jid in (None, ''): + local = True if local: vcard = self.api['get_vcard'](jid, None, ifrom) @@ -97,8 +107,8 @@ class XEP_0054(BasePlugin): def publish_vcard(self, vcard=None, jid=None, block=True, ifrom=None, callback=None, timeout=None): + self.api['set_vcard'](jid, None, ifrom, vcard) if self.xmpp.is_component: - self.api['set_vcard'](jid, None, ifrom, vcard) return iq = self.xmpp.Iq() |