Event based IRC client library in Go (golang)
Go to file
Thomas Jager 588a268192 Fix test
2012-11-11 10:51:02 +01:00
irc_callback.go Merge branch 'master' of git://github.com/lye/cleanirc 2012-11-06 00:38:20 +01:00
irc_struct.go SSL -> TLS 2012-11-07 21:55:33 +01:00
irc_test.go Fix test 2012-11-11 10:51:02 +01:00
irc.go Add more helpers 2012-11-11 10:37:52 +01:00
LICENSE LICENSE, Same as go itself. 2009-11-18 16:03:14 +01:00
README.markdown Update readme 2012-11-11 10:41:33 +01:00

Description

Event based irc client library.

Features

  • Event based. Register Callbacks for the events you need to handle.
  • Handles basic irc demands for you
    • Standard CTCP
    • Reconnections on errors
    • Detect stoned servers

Install

$ go get github.com/thoj/go-ircevent

Example

See test/irc_test.go

Events for callbacks

  • 001 Welcome
  • PING
  • CTCP Unknown CTCP
  • CTCP_VERSION Version request (Handled internaly)
  • CTCP_USERINFO
  • CTCP_CLIENTINFO
  • CTCP_TIME
  • CTCP_PING
  • PRIVMSG
  • MODE
  • JOIN

+Many more

AddCallback Example

ircobj.AddCallback("PRIVMSG", func(event *irc.Event) {
	//e.Message contains the message
	//e.Nick Contains the sender
	//e.Arguments[0] Contains the channel
});

Commands

ircobj := irc.IRC("<nick>", "<user>") //Create new ircobj
//Set options
ircobj.UseTLS = true //default is false
//ircobj.TLSOptions //set ssl options
ircobj.Password = "[server password]"
//Commands
ircobj.Connect("irc.someserver.com:6667") //Connect to server
ircobj.Sendraw("<string>") //sends string to server. Adds \r\n
ircobj.Sendrawf("<formatstring>", ...) //sends formatted string to server.n
ircobj.Join("<#channel> [password]") 
ircobj.Privmsg("<nickname | #channel>", "msg")
ircobj.Privmsgf(<nickname | #channel>, "<formatstring>", ...)
ircobj.Notice("<nickname | #channel>", "msg")
ircobj.Noticef("<nickname | #channel>", "<formatstring>", ...)