Libraries to help with IRC development in Go. Mirror/fork of https://github.com/ergochat/irc-go https://github.com/ergochat/irc-go
irc
Go to file
2012-11-05 23:39:38 +01:00
example Rename IRC{Connection,Event} -> {Connection,Event} 2012-05-11 13:35:25 +02:00
pkg Merge back fork. Update readme. 2012-11-05 23:39:38 +01:00
src/irc Merge back fork. Update readme. 2012-11-05 23:39:38 +01:00
irc_callback.go Rename IRC{Connection,Event} -> {Connection,Event} 2012-05-11 13:35:25 +02:00
irc_struct.go Rename IRC{Connection,Event} -> {Connection,Event} 2012-05-11 13:35:25 +02:00
irc.go Rename IRC{Connection,Event} -> {Connection,Event} 2012-05-11 13:35:25 +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 Also apply the same renaming for the README 2012-05-11 13:49:51 +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.Event) {
	//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")