]> code.delx.au - pymsnt/blobdiff - src/session.py
Committed Remko's patches (env & typing notification fix)
[pymsnt] / src / session.py
index 28b7322fefef24c064b0b2a4e6cf169ef21b2861..df5557e08dc958aac871a82b91daf92395cfc489 100644 (file)
@@ -1,6 +1,8 @@
 # Copyright 2004-2005 James Bunton <james@delx.cjb.net>
 # Licensed for distribution under the GPL version 2, check COPYING for details
 
+from tlib.xmlw import jid
+
 import utils
 import legacy
 import jabw
@@ -8,11 +10,8 @@ import contact
 import avatar
 import config
 import lang
+import disco
 from debug import LogEvent, INFO, WARN, ERROR
-if utils.checkTwisted():
-       from twisted.words.protocols.jabber import jid
-else:
-       from tlib.jabber import jid
 
 
 
@@ -105,7 +104,6 @@ class Session(jabw.JabberConnection):
                        self.pytrans = None
                
                LogEvent(INFO, self.jabberID, "Removed!")
-               utils.mutilateMe(self)
        
        def doVCardUpdate(self):
                def vCardReceived(el):
@@ -146,7 +144,7 @@ class Session(jabw.JabberConnection):
        def updateNickname(self, nickname):
                self.nickname = nickname
                if not self.nickname:
-                       j = jid.JID(self.jabberID)
+                       j = jid.intern(self.jabberID)
                        self.nickname = j.user
                self.setStatus(self.show, self.status)
        
@@ -182,9 +180,9 @@ class Session(jabw.JabberConnection):
                if avatarHash == " ": # Setting no avatar
                        self.legacycon.updateAvatar() # Default
                elif (not self.avatar) or (self.avatar and self.avatar.getImageHash() != avatarHash):
-                       imageData = self.pytrans.avatarCache.getAvatar(avatarHash)
-                       if imageData:
-                               self.avatar = avatar.Avatar(imageData) # Stuff in the cache is always PNG
+                       av = self.pytrans.avatarCache.getAvatar(avatarHash)
+                       if av:
+                               self.avatar = av # Stuff in the cache is always PNG
                                self.legacycon.updateAvatar(self.avatar)
                        else:
                                self.doVCardUpdate()
@@ -266,6 +264,12 @@ class Session(jabw.JabberConnection):
                        groupchat = legacy.LegacyGroupchat(self, resource, gcID) # Creates an empty groupchat
                        groupchat.userJoined(tor)
                
+               elif ptype == "probe":
+                       LogEvent(INFO, self.jabberID, "Responding to presence probe")
+                       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)