class IRC(protocol.Protocol): (source)
Known subclasses: twisted.words.service.IRCUser
Internet Relay Chat server protocol.
Method | action |
Send an action to a channel or user. |
Method | channel |
Send information about the mode of a channel. |
Method | connection |
Called when a connection is made. |
Method | 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.) |
Method | handle |
Determine the function to call for the given command and call it with the given arguments. |
Method | irc |
Called by handleCommand on a command that doesn't have a defined handler. Subclasses should override this method. |
Method | join |
Send a join message. |
Method | names |
Send the names of a channel's participants to a user. |
Method | notice |
Send a "notice" to a channel or user. |
Method | part |
Send a part message. |
Method | privmsg |
Send a message to a channel or user |
Method | send |
Send to the remote peer a line formatted as an IRC message. |
Method | send |
Undocumented |
Method | send |
Send a line formatted as an IRC message. |
Method | topic |
Send the topic to a user. |
Method | topic |
Send the author of and time at which a topic was set for the given channel. |
Method | who |
Send a list of users participating in a channel. |
Method | whois |
Send information about the state of a particular user. |
Class Variable | encoding |
Undocumented |
Instance Variable | buffer |
Undocumented |
Instance Variable | channels |
Undocumented |
Instance Variable | hostname |
Undocumented |
Method | _escape |
Escape the given tag value according to escaping rules in IRCv3. |
Method | _string |
Converts a tag dictionary to a string. |
Method | _validate |
Checks the tag dict for errors and raises ValueError if an error is found. |
Inherited from Protocol
:
Method | connection |
Called when the connection is shut down. |
Method | log |
Return a prefix matching the class name, to identify log messages related to this protocol instance. |
Class Variable | factory |
Undocumented |
Inherited from BaseProtocol
(via Protocol
):
Method | make |
Make a connection to a transport and a server. |
Instance Variable | connected |
Undocumented |
Instance Variable | transport |
Undocumented |
Send an action to a channel or user.
Parameters | |
sender:str or unicode | Who is sending this message. Should be of the form username!ident@hostmask (unless you know better!). |
recip:str or unicode | The recipient of this message. If a channel, it must start with a channel prefix. |
message:str or unicode | The action being sent. |
Send information about the mode of a channel.
Parameters | |
user:str or unicode | The user receiving the name list. Only their nickname, not the full hostmask. |
channel:str or unicode | The channel for which this is the namelist. |
mode:str | A string describing this channel's modes. |
*args | Any additional arguments required by the modes. |
twisted.words.service.IRCUser
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.
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.)
Called by handleCommand
on a command that doesn't have a defined handler. Subclasses should override this method.
Send a join message.
Parameters | |
who:str or unicode | The name of the user joining. Should be of the form username!ident@hostmask (unless you know better!). |
where:str or unicode | The channel the user is joining. |
Send the names of a channel's participants to a user.
Parameters | |
user:str or unicode | The user receiving the name list. Only their nickname, not the full hostmask. |
channel:str or unicode | The channel for which this is the namelist. |
names:list of str or unicode | The names to send. |
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.
Parameters | |
sender:str or unicode | Who is sending this message. Should be of the form username!ident@hostmask (unless you know better!). |
recip:str or unicode | The recipient of this message. If a channel, it must start with a channel prefix. |
message:str or unicode | The message being sent. |
Send a part message.
Parameters | |
who:str or unicode | The name of the user joining. Should be of the form username!ident@hostmask (unless you know better!). |
where:str or unicode | The channel the user is joining. |
reason:str or unicode | A string describing the misery which caused this poor soul to depart. |
Send a message to a channel or user
Parameters | |
sender:str or unicode | Who is sending this message. Should be of the form username!ident@hostmask (unless you know better!). |
recip:str or unicode | The recipient of this message. If a channel, it must start with a channel prefix. |
message:str or unicode | The message being sent. |
Send to the remote peer a line formatted as an IRC message.
Parameters | |
command:unicode | The command or numeric to send. |
parameters:A tuple or list of unicode parameters | The parameters to send with the command. |
prefix:unicode | The prefix to send with the command. If not given, no prefix is sent. |
tags:dict of tags (unicode ) => values (unicode ) | A 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. |
See Also | |
https://ircv3.net/specs/core/message-tags-3.2.html |
twisted.words.service.IRCUser
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.
Send the topic to a user.
Parameters | |
user:str or unicode | The user receiving the topic. Only their nickname, not the full hostmask. |
channel:str or unicode | The channel for which this is the topic. |
topic:str or unicode or None | The topic string, unquoted, or None if there is no topic. |
author:str or unicode | If the topic is being changed, the full username and hostmask of the person changing it. |
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.
Parameters | |
user:str or unicode | The user receiving the topic. Only their nickname, not the full hostmask. |
channel:str or unicode | The channel for which this information is relevant. |
author:str or unicode | The nickname (without hostmask) of the user who last set the topic. |
date:int | A POSIX timestamp (number of seconds since the epoch) at which the topic was last set. |
Send a list of users participating in a channel.
Parameters | |
user:str or unicode | The user receiving this member information. Only their nickname, not the full hostmask. |
channel:str or unicode | The channel for which this is the member information. |
member | For 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. |
Send information about the state of a particular user.
Parameters | |
user:str or unicode | The user receiving this information. Only their nickname, not the full hostmask. |
nick:str or unicode | The nickname of the user this information describes. |
username:str or unicode | The user's username (eg, ident response) |
hostname:str | The user's hostmask |
real | The user's real name |
server:str or unicode | The name of the server to which the user is connected |
server | A descriptive string about that server |
oper:bool | Indicates whether the user is an IRC operator |
idle:int | The number of seconds since the user last sent a message |
sign | A POSIX timestamp (number of seconds since the epoch) indicating the time the user signed on |
channels:list of str or unicode | A list of the channels which the user is participating in |
Escape the given tag value according to escaping rules in IRCv3.
Parameters | |
value:str | The string value to escape. |
Returns | |
str | The escaped string for sending as a message value |
Converts a tag dictionary to a string.
Parameters | |
tags | The tag dict passed to sendMsg. |
Returns | |
unicode | IRCv3-format tag string |
Checks the tag dict for errors and raises ValueError
if an error is found.
Parameters | |
tags | The tag dict passed to sendMsg. |