/go-irc

Primary LanguageGoBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Build Status

go-irc

SYNOPSIS

import (
	"log"

	"github.com/mix3/go-irc"
)

func main() {
	conn, err := irc.New(&irc.Config{
		Nick:     "ikusan",
		User:     "ikusan",
		RealName: "ikusan",
	})
	conn.CallbackerFunc(func(conn *irc.Conn, e *irc.Event){
		irc.DefaultCallback(conn, e)
		switch e.Code {
		case "001":
			conn.Ping("ping")
		case "PONG":
			conn.Disconnect()
		case irc.DISCONNECTED:
			conn.Logger().Infof("[INFO   ] disconnect")
		}
	})
	if err != nil {
		log.Fatalf("error new %s", err)
	}
	quit, err := conn.Connect("irc.freenode.net", 6667)
	if err != nil {
		log.Fatalf("error connect %s", err)
	}
	count := 1
	for {
		select {
		case <-quit:
			if 3 <= count {
				return
			}
			for {
				_, err = conn.Reconnect()
				if err == nil {
					count++
					break
				}
			}
		}
	}
}

DESCRIPTION

go-irc is yet another irc client library.

THE SOFTWARE IS ALPHA QUALITY. API MAY CHANGE WITHOUT NOTICE.

MISC

Many codes was copied from fluffle/goir, and thoj/go-ircevent.

LICENSE

This code is (c) 2014 mix3, and released under the same licence terms as Go itself.