mirror of https://github.com/fluffle/goirc
35 lines
1.4 KiB
Go
35 lines
1.4 KiB
Go
// Package client implements an IRC client. It handles protocol basics
|
|
// such as initial connection and responding to server PINGs, and has
|
|
// optional state tracking support which will keep tabs on every nick
|
|
// present in the same channels as the client. Other features include
|
|
// SSL support, automatic splitting of long lines, and panic recovery
|
|
// for handlers.
|
|
//
|
|
// Incoming IRC messages are parsed into client.Line structs and trigger
|
|
// events based on the IRC verb (e.g. PRIVMSG) of the message. Handlers
|
|
// for these events conform to the client.Handler interface; a HandlerFunc
|
|
// type to wrap bare functions is provided a-la the net/http package.
|
|
//
|
|
// Creating a client, adding a handler and connecting to a server looks
|
|
// soemthing like this, for the simple case:
|
|
//
|
|
// // Create a new client, which will connect with the nick "myNick"
|
|
// irc := client.SimpleClient("myNick")
|
|
//
|
|
// // Add a handler that waits for the "disconnected" event and
|
|
// // closes a channel to signal everything is done.
|
|
// disconnected := make(chan struct{})
|
|
// c.HandleFunc("disconnected", func(c *client.Conn, l *client.Line) {
|
|
// close(disconnected)
|
|
// })
|
|
//
|
|
// // Connect to an IRC server.
|
|
// if err := c.ConnectTo("irc.freenode.net"); err != nil {
|
|
// log.Fatalf("Connection error: %v\n", err)
|
|
// }
|
|
//
|
|
// // Wait for disconnection.
|
|
// <-disconnected
|
|
//
|
|
package client
|