Part of twisted.words.protocols.msn View Source View In Hierarchy
Switchboard servers are used for conversations with other people on the MSN network. This means that the number of conversations at any given time will be directly proportional to the number of connections to varioius switchboard servers.
MSN makes no distinction between single and group conversations, so any number of users may be invited to join a specific conversation taking place on a switchboard server.
Instance Variable | key | authorization key, obtained when receiving invitation / requesting switchboard server. |
Instance Variable | userHandle | your user handle (passport) |
Instance Variable | sessionID | unique session ID, used if you are replying to a switchboard invitation |
Instance Variable | reply | set this to 1 in connectionMade or before to signifiy that you are replying to a switchboard invitation. |
Method | __init__ | Undocumented |
Method | connectionMade | Called when a connection is made. |
Method | connectionLost | Called when the connection is shut down. |
Method | checkMessage | hook for detecting any notification type messages (e.g. file transfer) |
Method | handle_USR | Undocumented |
Method | handle_CAL | Undocumented |
Method | handle_JOI | Undocumented |
Method | handle_IRO | Undocumented |
Method | handle_ANS | Undocumented |
Method | handle_ACK | Undocumented |
Method | handle_NAK | Undocumented |
Method | handle_BYE | Undocumented |
Method | loggedIn | called when all login details have been negotiated. Messages can now be sent, or new users invited. |
Method | gotChattingUsers | called after connecting to an existing chat session. |
Method | userJoined | called when a user has joined the conversation. |
Method | userLeft | called when a user has left the conversation. |
Method | gotMessage | called when we receive a message. |
Method | userTyping | called when we receive the special type of message notifying us that a user is typing a message. |
Method | gotSendRequest | called when a contact is trying to send us a file. To accept or reject this transfer see the fileInvitationReply method. |
Method | inviteUser | used to invite a user to the current switchboard server. |
Method | sendMessage | used to send a message. |
Method | sendTypingNotification | No summary |
Method | sendFileInvitation | send an notification that we want to send a file. |
Method | fileInvitationReply | used to reply to a file transfer invitation. |
Method | sendTransferInfo | send information relating to a file transfer session. |
Method | _sendInit | send initial data based on whether we are replying to an invitation or starting one. |
Method | _newInvitationCookie | Undocumented |
Method | _checkTyping | helper method for checkMessage |
Method | _checkFileInvitation | helper method for checkMessage |
Method | _checkFileResponse | helper method for checkMessage |
Method | _checkFileInfo | helper method for checkMessage |
Inherited from MSNEventBase:
Method | lineReceived | Override this for when each line is received. |
Method | rawDataReceived | Override this for when raw data is received. |
Method | handle_MSG | Undocumented |
Method | handle_UNKNOWN | implement me in subclasses if you want to handle unknown events |
Method | gotBadLine | called when a handler notifies me that this line is broken |
Method | gotError | called when the server sends an error which is not in response to a sent command (ie. it has no matching transaction ID) |
Method | _fireCallback | Fire the callback for the given id if one exists and return 1, else return false |
Method | _nextTransactionID | return a usable transaction ID |
Method | _createIDMapping | return a unique transaction ID that is mapped internally to a deferred .. also store arbitrary data if it is needed |
Inherited from LineReceiver (via MSNEventBase):
Class Variable | delimiter | The line-ending delimiter to use. By default this is '\r\n'. |
Class Variable | MAX_LENGTH | The maximum length of a line to allow (If a sent line is longer than this, the connection is dropped). Default is 16384. |
Method | clearLineBuffer | Clear buffered data. |
Method | dataReceived | Protocol.dataReceived. Translates bytes into lines, and calls lineReceived (or rawDataReceived, depending on mode.) |
Method | setLineMode | Sets the line-mode of this receiver. |
Method | setRawMode | Sets the raw mode of this receiver. Further data received will be sent to rawDataReceived rather than lineReceived. |
Method | sendLine | Sends a line to the other end of the connection. |
Method | lineLengthExceeded | Called when the maximum line length has been reached. Override if it needs to be dealt with in some special way. |
Inherited from Protocol (via MSNEventBase, LineReceiver):
Method | logPrefix | Return a prefix matching the class name, to identify log messages related to this protocol instance. |
Inherited from BaseProtocol (via MSNEventBase, LineReceiver, Protocol):
Method | makeConnection | Make a connection to a transport and a server. |
Inherited from _PauseableMixin (via MSNEventBase, LineReceiver):
Method | pauseProducing | Undocumented |
Method | resumeProducing | Undocumented |
Method | stopProducing | Undocumented |
This may be considered the initializer of the protocol, because it is called when the connection is completed. For clients, this is called once the connection to the server has been established; for servers, this is called after an accept() call stops blocking and a socket has been received. If you need to send any greeting or initial message, do it here.
Clear any circular references here, and any external references to this Protocol. The connection has been closed.
Parameters | users | A dict mapping user handles to screen names (current users taking part in the conversation) |
Parameters | userHandle | the user handle (passport) of the user |
screenName | the screen name of the user |
Parameters | userHandle | the user handle (passport) of the user. |
Parameters | message | the associated MSNMessage object |
Parameters | message | the associated MSNMessage object |
Parameters | fileName | the name of the file |
fileSize | the size of the file | |
iCookie | the invitation cookie, used so the client can match up your reply with this request. | |
message | the MSNMessage object which brought about this invitation (it may contain more information) |
Parameters | userHandle | the user handle (passport) of the desired user. |
Returns | A Deferred, the callback for which will be called when the server notifies us that the user has indeed been invited. The callback argument will be a tuple with 1 element, the sessionID given to the invited user. I'm not sure if this is useful or not. |
Parameters | message | the corresponding MSNMessage object. |
Returns | Depending on the value of message.ack. If set to MSNMessage.MESSAGE_ACK or MSNMessage.MESSAGE_NACK a Deferred will be returned, the callback for which will be fired when an ACK or NACK is received - the callback argument will be (None,). If set to MSNMessage.MESSAGE_ACK_NONE then the return value is None. |
Parameters | fileName | the file name |
fileSize | the file size | |
Returns | A Deferred, the callback of which will be fired when the user responds to this invitation with an appropriate message. The callback argument will be a tuple with 3 elements, the first being 1 or 0 depending on whether they accepted the transfer (1=yes, 0=no), the second being an invitation cookie to identify your follow-up responses and the third being the message 'info' which is a dict of information they sent in their reply (this doesn't really need to be used). If you wish to proceed with the transfer see the sendTransferInfo method. |
Parameters | iCookie | the invitation cookie of the initial invitation |
accept | whether or not you accept this transfer, 1 = yes, 0 = no, default = 1. | |
Returns | A Deferred, the callback for which will be fired when the user responds with the transfer information. The callback argument will be a tuple with 5 elements, whether or not they wish to proceed with the transfer (1=yes, 0=no), their ip, the port, the authentication cookie (see FileReceive/FileSend) and the message info (dict) (in case they send extra header-like info like Internal-IP, this doesn't necessarily need to be used). If you wish to proceed with the transfer see FileReceive. |
Parameters | accept | whether or not to go ahead with the transfer (1=yes, 0=no) |
iCookie | the invitation cookie of previous replies relating to this transfer | |
authCookie | the authentication cookie obtained from an FileSend instance | |
ip | your ip | |
port | the port on which an FileSend protocol is listening. |