]> code.delx.au - pymsnt/blobdiff - src/session.py
Use vCard fullname if nickname isn't around.
[pymsnt] / src / session.py
index 0f9d91e002603ffbc240e06921546060a5d31633..c876fe7a3658721ec60287ba8128eb87fd7b0799 100644 (file)
@@ -118,9 +118,13 @@ class Session(jabw.JabberConnection):
                                self.legacycon.updateAvatar() # Default avatar
                                return
                        avatarSet = False
+                       name = ""
                        for e in vCard.elements():
                                if e.name == "NICKNAME":
-                                       self.updateNickname(e.__str__())
+                                       name = e.__str__()
+                               if not name and e.name == "FN":
+                                       # Give priority to nickname
+                                       name = e.__str__()
                                if e.name == "PHOTO":
                                        imageData = avatar.parsePhotoEl(e)
                                        if not imageData:
@@ -128,6 +132,8 @@ class Session(jabw.JabberConnection):
                                        self.avatar = self.pytrans.avatarCache.setAvatar(imageData)
                                        self.legacycon.updateAvatar(self.avatar)
                                        avatarSet = True
+                       if name:
+                               self.updateNickname(e.__str__())
                        if not avatarSet:
                                self.legacycon.updateAvatar() # Default avatar
 
@@ -266,7 +272,10 @@ class Session(jabw.JabberConnection):
                
                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)