Event based IRC client library in Go (golang)
Go to file
tj 79ac1741ea Add irccon.Quit() and irccon.Cycle()
Quit() Sends QUIT to server and exits the main loop.
Cycle() Sends QUIT to server and reconnects.
2010-10-18 21:46:34 +02:00
example Replace broken Makefile 2010-10-15 12:44:14 +02:00
irc_callback.go Fix adding more then one callback for same eventcode, grow slice dynamically. 2010-10-09 15:11:28 +02:00
irc_struct.go Add irccon.Quit() and irccon.Cycle() 2010-10-18 21:46:34 +02:00
irc.go Add irccon.Quit() and irccon.Cycle() 2010-10-18 21:46:34 +02:00
LICENSE LICENSE, Same as go itself. 2009-11-18 16:03:14 +01:00
Makefile Fixing compile for new go version, again. (Sorry about that) 2010-09-29 11:53:44 +02:00
README.markdown Updating readme for Password support 2010-09-29 09:55:31 +02: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

$ git clone git://github.com/thoj/Go-IRC-Client-Library.git
$ cd Go-IRC-Client-Library
$ make 
$ make install

Example

See example/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.IRCEvent) {
	//e.Message contains the message
	//e.Nick Contains the sender
	//e.Arguments[0] Contains the channel
});

Commands

irc.IRC("<nick>", "<user>") //Create new ircobj
ircobj.Password = "[server password]"
ircobj.Connect("irc.someserver.com:6667") //Connect to server
ircobj.Sendraw("<string>") //sends string to server. Adds \r\n
ircobj.Join("#channel [password]") 
ircobj.Privmsg("#channel", "msg")
ircobj.Privmsg("nickname", "msg")
ircobj.Notice("<nickname | #channel>", "msg")