Package twisted :: Package protocols :: Module irc :: Class IRC

[frames | no frames]

## Class IRC

    BaseProtocol --+
                   |
            Protocol --+
                       |
                      IRC

Known Subclasses:
  `IRCChatter`, `IRCUserInterface`

Internet Relay Chat server protocol.

Method Summary
| ``action`(self, sender, recip, message)` Send an action to a channel or user.
| ``connectionMade`(self)` Called when a connection is made.
| ``dataReceived`(self, data)` This hack is to support mIRC, which sends LF only, even though the RFC says CRLF.
| ``handleCommand`(self, command, prefix, params)` Determine the function to call for the given command and call it with the given arguments.
| ``irc_unknown`(self, prefix, command, params)` Implement me!
| ``join`(self, who, where)` Send a join message.
| ``names`(self, user, channel, names)` Send the names of a channel's participants to a user.
| ``notice`(self, sender, recip, message)` Send a "notice" to a channel or user.
| ``part`(self, who, where)` Send a part message.
| ``privmsg`(self, sender, recip, message)` Send a message to a channel or user
| `sendLine(self, line)`
| ``sendMessage`(self, command, *parameter_list, **prefix)` Send a line formatted as an IRC message.
| ``topic`(self, user, channel, topic, author)` Send the topic to a user.
Inherited from Protocol
| ``connectionFailed`(self)` (Deprecated)
| ``connectionLost`(self, reason)` Called when the connection is shut down.
Inherited from BaseProtocol
| ``makeConnection`(self, transport)` Make a connection to a transport and a server.

Class Variable Summary
`str` | `buffer` = `''`
`NoneType` | `hostname` = None
Inherited from Protocol
`tuple` | `__implements__` = `(<class twisted.internet.interfaces.IPr...`
Inherited from BaseProtocol
`int` | `connected` = 0
`NoneType` | `transport` = None

Method Details

### action(self, sender, recip, message)

Send an action to a channel or user.

  Parameters:
    `sender` - Who is sending this message. Should be of the form username!ident@hostmask (unless you know better!).
    (type=`str`)
    `recip` - The recipient of this message. If a channel, it must start with a channel prefix.
    (type=`str`)
    `message` - The action being sent.
    (type=`str`)

### 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.

  Overrides:
    `twisted.internet.protocol.BaseProtocol.connectionMade` (inherited documentation)

### 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.)

  Overrides:
    `twisted.internet.protocol.Protocol.dataReceived`

### handleCommand(self, command, prefix, params)

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

### irc_unknown(self, prefix, command, params)

Implement me!

### join(self, who, where)

Send a join message.

  Parameters:
    `who` - The name of the user joining. Should be of the form username!ident@hostmask (unless you know better!).
    (type=`str`)
    `where` - The channel the user is joining.
    (type=`str`)

### names(self, user, channel, names)

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

  Parameters:
    `user` - The user receiving the topic. Only their nick name, not the full hostmask.
    (type=`str`)
    `channel` - The channel for which this is the topic.
    (type=`str`)
    `names` - The names to send.
    (type=`list` of `str`)

### 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.

  Parameters:
    `sender` - Who is sending this message. Should be of the form username!ident@hostmask (unless you know better!).
    (type=`str`)
    `recip` - The recipient of this message. If a channel, it must start with a channel prefix.
    (type=`str`)
    `message` - The message being sent.
    (type=`str`)

### part(self, who, where)

Send a part message.

  Parameters:
    `who` - The name of the user joining. Should be of the form username!ident@hostmask (unless you know better!).
    (type=`str`)
    `where` - The channel the user is joining.
    (type=`str`)

### privmsg(self, sender, recip, message)

Send a message to a channel or user

  Parameters:
    `sender` - Who is sending this message. Should be of the form username!ident@hostmask (unless you know better!).
    (type=`str`)
    `recip` - The recipient of this message. If a channel, it must start with a channel prefix.
    (type=`str`)
    `message` - The message being sent.
    (type=`str`)

### 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'.

### topic(self, user, channel, topic, author=None)

Send the topic to a user.

  Parameters:
    `user` - The user receiving the topic. Only their nick name, not the full hostmask.
    (type=`str`)
    `channel` - The channel for which this is the topic.
    (type=`str`)
    `topic` - The topic string.
    (type=`str`)
    `author` - If the topic is being changed, the full username and hostmask of the person changing it.
    (type=`str`)

Class Variable Details

### buffer

  Type:
    `str`
  Value:

        ''

### hostname

  Type:
    `NoneType`
  Value:

        None

Generated by Epydoc 2.0 on Sat May 15 20:08:50 2004 | http://epydoc.sf.net