Known subclasses: twisted.words.service.IRCUser

Internet Relay Chat server protocol.

Method connectionMade Called when a connection is made.
Method sendLine Undocumented
Method sendMessage Send a line formatted as an IRC message.
Method sendCommand Send to the remote peer a line formatted as an IRC message.
Method dataReceived This hack is to support mIRC, which sends LF only, even though the RFC says CRLF. (Also, the flexibility of LineReceiver to turn "line mode" on and off was not required.)
Method handleCommand Determine the function to call for the given command and call it with the given arguments.
Method irc_unknown Called by handleCommand on a command that doesn't have a defined handler. Subclasses should override this method.
Method privmsg Send a message to a channel or user
Method notice Send a "notice" to a channel or user.
Method action Send an action to a channel or user.
Method topic Send the topic to a user.
Method topicAuthor Send the author of and time at which a topic was set for the given channel.
Method names Send the names of a channel's participants to a user.
Method who Send a list of users participating in a channel.
Method whois Send information about the state of a particular user.
Method join Send a join message.
Method part Send a part message.
Method channelMode Send information about the mode of a channel.
Method _stringTags Converts a tag dictionary to a string.
Method _validateTags Checks the tag dict for errors and raises ValueError if an error is found.
Method _escapeTagValue Escape the given tag value according to escaping rules in IRCv3.

Inherited from Protocol:

Method logPrefix Return a prefix matching the class name, to identify log messages related to this protocol instance.
Method connectionLost Called when the connection is shut down.

Inherited from BaseProtocol (via Protocol):

Method makeConnection Make a connection to a transport and a server.
def connectionMade(self):

Called when a connection is made.

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.

def sendLine(self, line):
Undocumented
def sendMessage(self, command, *parameter_list, **prefix):

Send a line formatted as an IRC message.

First argument is the command, all subsequent arguments are parameters to that command. If a prefix is desired, it may be specified with the keyword argument 'prefix'.

The sendCommand method is generally preferred over this one. Notably, this method does not support sending message tags, while the sendCommand method does.

def sendCommand(self, command, parameters, prefix=None, tags=None):

Send to the remote peer a line formatted as an IRC message.

ParameterscommandThe command or numeric to send. (type: unicode)
parametersThe parameters to send with the command. (type: A tuple or list of unicode parameters)
prefixThe prefix to send with the command. If not given, no prefix is sent. (type: unicode)
tagsA dict of message tags. If not given, no message tags are sent. The dict key should be the name of the tag to send as a string; the value should be the unescaped value to send with the tag, or either None or "" if no value is to be sent with the tag. (type: dict of tags (unicode) => values (unicode))
See Alsohttps://ircv3.net/specs/core/message-tags-3.2.html
def _stringTags(self, tags):

Converts a tag dictionary to a string.

ParameterstagsThe tag dict passed to sendMsg.
ReturnsIRCv3-format tag string (type: unicode)
def _validateTags(self, tags):

Checks the tag dict for errors and raises ValueError if an error is found.

ParameterstagsThe tag dict passed to sendMsg.
def _escapeTagValue(self, value):

Escape the given tag value according to escaping rules in IRCv3.

ParametersvalueThe string value to escape. (type: str)
ReturnsThe escaped string for sending as a message value (type: str)
def dataReceived(self, data):

This hack is to support mIRC, which sends LF only, even though the RFC says CRLF. (Also, the flexibility of LineReceiver to turn "line mode" on and off was not required.)

def handleCommand(self, command, prefix, params):

Determine the function to call for the given command and call it with the given arguments.

ParameterscommandThe IRC command to determine the function for. (type: bytes)
prefixThe prefix of the IRC message (as returned by parsemsg). (type: bytes)
paramsA list of parameters to call the function with. (type: list)
def irc_unknown(self, prefix, command, params):

Called by handleCommand on a command that doesn't have a defined handler. Subclasses should override this method.

def privmsg(self, sender, recip, message):

Send a message to a channel or user

ParameterssenderWho is sending this message. Should be of the form username!ident@hostmask (unless you know better!). (type: str or unicode)
recipThe recipient of this message. If a channel, it must start with a channel prefix. (type: str or unicode)
messageThe message being sent. (type: str or unicode)
def notice(self, sender, recip, message):

Send a "notice" to a channel or user.

Notices differ from privmsgs in that the RFC claims they are different. Robots are supposed to send notices and not respond to them. Clients typically display notices differently from privmsgs.

ParameterssenderWho is sending this message. Should be of the form username!ident@hostmask (unless you know better!). (type: str or unicode)
recipThe recipient of this message. If a channel, it must start with a channel prefix. (type: str or unicode)
messageThe message being sent. (type: str or unicode)
def action(self, sender, recip, message):

Send an action to a channel or user.

ParameterssenderWho is sending this message. Should be of the form username!ident@hostmask (unless you know better!). (type: str or unicode)
recipThe recipient of this message. If a channel, it must start with a channel prefix. (type: str or unicode)
messageThe action being sent. (type: str or unicode)
def topic(self, user, channel, topic, author=None):

Send the topic to a user.

ParametersuserThe user receiving the topic. Only their nickname, not the full hostmask. (type: str or unicode)
channelThe channel for which this is the topic. (type: str or unicode)
topicThe topic string, unquoted, or None if there is no topic. (type: str or unicode or None)
authorIf the topic is being changed, the full username and hostmask of the person changing it. (type: str or unicode)
def topicAuthor(self, user, channel, author, date):

Send the author of and time at which a topic was set for the given channel.

This sends a 333 reply message, which is not part of the IRC RFC.

ParametersuserThe user receiving the topic. Only their nickname, not the full hostmask. (type: str or unicode)
channelThe channel for which this information is relevant. (type: str or unicode)
authorThe nickname (without hostmask) of the user who last set the topic. (type: str or unicode)
dateA POSIX timestamp (number of seconds since the epoch) at which the topic was last set. (type: int)
def names(self, user, channel, names):

Send the names of a channel's participants to a user.

ParametersuserThe user receiving the name list. Only their nickname, not the full hostmask. (type: str or unicode)
channelThe channel for which this is the namelist. (type: str or unicode)
namesThe names to send. (type: list of str or unicode)
def who(self, user, channel, memberInfo):

Send a list of users participating in a channel.

ParametersuserThe user receiving this member information. Only their nickname, not the full hostmask. (type: str or unicode)
channelThe channel for which this is the member information. (type: str or unicode)
memberInfoFor each member of the given channel, a 7-tuple containing their username, their hostmask, the server to which they are connected, their nickname, the letter "H" or "G" (standing for "Here" or "Gone"), the hopcount from user to this member, and this member's real name. (type: list of tuples)
def whois(self, user, nick, username, hostname, realName, server, serverInfo, oper, idle, signOn, channels):

Send information about the state of a particular user.

ParametersuserThe user receiving this information. Only their nickname, not the full hostmask. (type: str or unicode)
nickThe nickname of the user this information describes. (type: str or unicode)
usernameThe user's username (eg, ident response) (type: str or unicode)
hostnameThe user's hostmask (type: str)
realNameThe user's real name (type: str or unicode)
serverThe name of the server to which the user is connected (type: str or unicode)
serverInfoA descriptive string about that server (type: str or unicode)
operIndicates whether the user is an IRC operator (type: bool)
idleThe number of seconds since the user last sent a message (type: int)
signOnA POSIX timestamp (number of seconds since the epoch) indicating the time the user signed on (type: int)
channelsA list of the channels which the user is participating in (type: list of str or unicode)
def join(self, who, where):

Send a join message.

ParameterswhoThe name of the user joining. Should be of the form username!ident@hostmask (unless you know better!). (type: str or unicode)
whereThe channel the user is joining. (type: str or unicode)
def part(self, who, where, reason=None):

Send a part message.

ParameterswhoThe name of the user joining. Should be of the form username!ident@hostmask (unless you know better!). (type: str or unicode)
whereThe channel the user is joining. (type: str or unicode)
reasonA string describing the misery which caused this poor soul to depart. (type: str or unicode)
def channelMode(self, user, channel, mode, *args):

Send information about the mode of a channel.

ParametersuserThe user receiving the name list. Only their nickname, not the full hostmask. (type: str or unicode)
channelThe channel for which this is the namelist. (type: str or unicode)
modeA string describing this channel's modes. (type: str)
argsAny additional arguments required by the modes.
API Documentation for twisted, generated by pydoctor at 2020-03-25 17:34:30.