LogEvent(INFO, self.jabberID)
vCard = None
for e in el.elements():
- if e.name == "vCard" and e.defaultUri == disco.VCARDTEMP:
+ if e.name == "vCard" and e.uri == disco.VCARDTEMP:
vCard = e
break
else:
self.legacycon.updateAvatar() # Default avatar
return
avatarSet = False
+ name = ""
for e in vCard.elements():
- if e.name == "NICKNAME":
- self.updateNickname(e.__str__())
+ if e.name == "NICKNAME" and e.__str__():
+ name = e.__str__()
+ if not name and e.name == "FN" and e.__str__():
+ # Give priority to nickname
+ name = e.__str__()
if e.name == "PHOTO":
imageData = avatar.parsePhotoEl(e)
if not imageData:
self.avatar = self.pytrans.avatarCache.setAvatar(imageData)
self.legacycon.updateAvatar(self.avatar)
avatarSet = True
+ if name:
+ self.updateNickname(name)
if not avatarSet:
self.legacycon.updateAvatar() # Default avatar
self.legacycon.updateAvatar()
LogEvent(INFO, self.jabberID, "Fetching avatar.")
- d = self.sendVCardRequest(to=self.jabberID, fro=config.jid)
+ d = self.sendVCardRequest(to=self.jabberID, fro=config.jid + "/msn")
d.addCallback(vCardReceived)
d.addErrback(errback)
elif ptype == "probe":
LogEvent(INFO, self.jabberID, "Responding to presence probe")
- self.contactList.getContact(to).sendPresence(source)
+ if to == config.jid:
+ self.legacycon.sendShowStatus(source)
+ else:
+ self.contactList.getContact(to).sendPresence(source)
else:
# Not for groupchat
self.handleResourcePresence(source, resource, to, tor, priority, ptype, show, status)