self._setStateData('lst_sofar',sofar)
def handle_BLP(self, params):
- # check to see if this is in response to a SYN
- if self._getState() == 'SYNC':
- self._getStateData('list').privacy = listCodeToID[params[0].lower()]
- else:
+ # If this is in response to a SYN, then there will be a transaction ID
+ try:
id = int(params[0])
self.factory.contacts.privacy = listCodeToID[params[1].lower()]
self._fireCallback(id, params[1])
+ except ValueError:
+ self._getStateData('list').privacy = listCodeToID[params[0].lower()]
def handle_GTC(self, params):
- # check to see if this is in response to a SYN
- if self._getState() == 'SYNC':
- if params[0].lower() == "a": self._getStateData('list').autoAdd = 0
- elif params[0].lower() == "n": self._getStateData('list').autoAdd = 1
- else: raise MSNProtocolError, "Invalid Paramater for GTC" # debug
- else:
+ # If this is in response to a SYN, then there will be a transaction ID
+ try:
id = int(params[0])
if params[1].lower() == "a": self._fireCallback(id, 0)
elif params[1].lower() == "n": self._fireCallback(id, 1)
else: raise MSNProtocolError, "Invalid Paramater for GTC" # debug
+ except ValueError:
+ if params[0].lower() == "a": self._getStateData('list').autoAdd = 0
+ elif params[0].lower() == "n": self._getStateData('list').autoAdd = 1
+ else: raise MSNProtocolError, "Invalid Paramater for GTC" # debug
def handle_SYN(self, params):
id = int(params[0])
- self._setStateData('phone', []) # Always needs to be set
- if params[3] == 0: # No LST will be received. New account?
+ contacts = MSNContactList()
+ self._setStateData('list', contacts)
+ self._setStateData('phone', [])
+ self._setStateData('lst_reply', int(params[3]))
+ self._setStateData('lsg_reply', int(params[4]))
+ self._setStateData('lst_sofar', 0)
+ if params[3] == "0": # No LST will be received. New account?
self._setState('SESSION')
- self._fireCallback(id, None, None)
- else:
- contacts = MSNContactList()
- self._setStateData('list', contacts)
- self._setStateData('lst_reply', int(params[3]))
- self._setStateData('lsg_reply', int(params[4]))
- self._setStateData('lst_sofar', 0)
+ self._fireCallback(id, contacts, [])
def handle_LSG(self, params):
if self._getState() == 'SYNC':
def handle_PRP(self, params):
if params[1] == "MFN":
self._fireCallback(int(params[0]))
- elif self._getState() == 'SYNC':
- self._getStateData('phone').append((params[0], unquote(params[1])))
else:
- self._fireCallback(int(params[0]), int(params[1]), unquote(params[3]))
+ try:
+ self._fireCallback(int(params[0]), int(params[1]), unquote(params[3]))
+ except ValueError:
+ self._getStateData('phone').append((params[0], unquote(params[1])))
def handle_BPR(self, params):
numParams = len(params)