# Copyright 2005 James Bunton <james@delx.cjb.net>
# Licensed for distribution under the GPL version 2, check COPYING for details
-import utils
+from debug import LogEvent, INFO, WARN, ERROR
+
from twisted.internet import reactor
from tlib.xmlw import Element
-from debug import LogEvent, INFO, WARN, ERROR
+
import disco
import legacy
-import jabw
-import config
-import lang
-import sha
class Contact:
def syncContactGrantedAuth(self):
""" Since last using the transport the user has been granted authorisation by this contact.
Call this to synchronise the user's Jabber list with their legacy list after logon. """
- if(self.sub == "none"):
+ if self.sub == "none":
self.sub = "to"
- elif(self.sub == "from"):
+ elif self.sub == "from":
self.sub = "both"
else:
return
def syncContactRemovedAuth(self):
""" Since last using the transport the user has been blocked by this contact.
Call this to synchronise the user's Jabber list with their legacy list after logon. """
- if(self.sub == "to"):
+ if self.sub == "to":
self.sub = "none"
- elif(self.sub == "both"):
+ elif self.sub == "both":
self.sub = "from"
else:
return
def syncUserGrantedAuth(self):
""" Since last using the transport the user has granted authorisation to this contact.
Call this to synchronise the user's Jabber list with their legacy list after logon. """
- if(self.sub == "none"):
+ if self.sub == "none":
self.sub = "from"
- elif(self.sub == "to"):
+ elif self.sub == "to":
self.sub = "both"
else:
return
def syncUserRemovedAuth(self):
""" Since last using the transport the user has removed this contact's authorisation.
Call this to synchronise the user's Jabber list with their legacy list after logon. """
- if(self.sub == "from"):
+ if self.sub == "from":
self.sub = "none"
- elif(self.sub == "both"):
+ elif self.sub == "both":
self.sub = "to"
else:
return
def contactGrantsAuth(self):
""" Live roster event """
- if(self.sub == "none"):
+ if self.sub == "none":
self.sub = "to"
- elif(self.sub == "from"):
+ elif self.sub == "from":
self.sub = "both"
self.sendSub("subscribed")
self.sendPresence()
def contactRemovesAuth(self):
""" Live roster event """
- if(self.sub == "to"):
+ if self.sub == "to":
self.sub = "none"
- elif(self.sub == "both"):
+ elif self.sub == "both":
self.sub = "from"
self.sendSub("unsubscribed")
self.sub = "none"
self.contactList.legacyList.removeContact(self.jid)
- elif(subtype == "unsubscribed"):
- if(self.sub == "both"):
+ elif subtype == "unsubscribed":
+ if self.sub == "both":
self.sub = "to"
- if(self.sub == "from"):
+ if self.sub == "from":
self.sub = "none"
self.contactList.legacyList.deauthContact(self.jid)
def updateNickname(self, nickname, push=True):
- if(self.nickname != nickname):
+ if self.nickname != nickname:
self.nickname = nickname
- if(push): self.sendPresence()
+ if push: self.sendPresence()
def updatePresence(self, show, status, ptype, force=False):
updateFlag = (self.show != show or self.status != status or self.ptype != ptype or force)
self.show = show
self.status = status
self.ptype = ptype
- if(updateFlag):
+ if updateFlag:
self.sendPresence()
def updateAvatar(self, avatar=None, push=True):
- if(self.avatar == avatar): return
+ if self.avatar == avatar:
+ return
self.avatar = avatar
- if(push): self.sendPresence()
+ if push:
+ self.sendPresence()
def sendSub(self, ptype):
- self.contactList.session.sendPresence(to=self.contactList.session.jabberID, fro=self.jid, ptype=ptype)
+ self.contactList.session.sendPresence(to=self.contactList.session.jabberID, fro=self.jid + "/" + legacy.id, ptype=ptype)
def sendPresence(self, tojid=""):
avatarHash = ""
- if(self.avatar):
+ if self.avatar:
avatarHash = self.avatar.getImageHash()
caps = Element((None, "c"))
caps.attributes["xmlns"] = disco.CAPS
caps.attributes["ver"] = legacy.version
if not tojid:
tojid=self.contactList.session.jabberID
- self.contactList.session.sendPresence(to=tojid, fro=self.jid, ptype=self.ptype, show=self.show, status=self.status, avatarHash=avatarHash, nickname=self.nickname, payload=[caps])
+ self.contactList.session.sendPresence(to=tojid, fro=self.jid + "/" + legacy.id, ptype=self.ptype, show=self.show, status=self.status, avatarHash=avatarHash, nickname=self.nickname, payload=[caps])
def resendLists(self, tojid=""):
for jid in self.contacts:
- if(self.contacts[jid].status != "unavailable"):
+ if self.contacts[jid].ptype != "unavailable" :
self.contacts[jid].sendPresence(tojid)
LogEvent(INFO, self.session.jabberID)
def getContact(self, jid):
""" Finds the contact. If one doesn't exist then a new one is created, with sub set to "none" """
- if(not self.contacts.has_key(jid)):
+ if not self.contacts.has_key(jid):
self.contacts[jid] = Contact(jid, "none", self)
return self.contacts[jid]
def findContact(self, jid):
- if(self.contacts.has_key(jid)):
+ if self.contacts.has_key(jid):
return self.contacts[jid]
return None