2009-11-21 23:05:12 +00:00
|
|
|
Description
|
2014-02-14 16:56:19 +00:00
|
|
|
-----------
|
2009-11-21 23:05:12 +00:00
|
|
|
|
|
|
|
Event based irc client library.
|
|
|
|
|
2009-11-29 21:11:27 +00:00
|
|
|
|
|
|
|
Features
|
2014-02-14 16:56:19 +00:00
|
|
|
--------
|
2010-01-06 18:32:35 +00:00
|
|
|
* Event based. Register Callbacks for the events you need to handle.
|
2010-01-10 21:26:39 +00:00
|
|
|
* Handles basic irc demands for you
|
2010-01-10 21:27:34 +00:00
|
|
|
* Standard CTCP
|
|
|
|
* Reconnections on errors
|
|
|
|
* Detect stoned servers
|
2009-11-29 21:11:27 +00:00
|
|
|
|
2009-11-21 23:05:12 +00:00
|
|
|
Install
|
2014-02-14 16:56:19 +00:00
|
|
|
-------
|
2012-11-05 22:41:04 +00:00
|
|
|
$ go get github.com/thoj/go-ircevent
|
2009-11-21 23:05:12 +00:00
|
|
|
|
|
|
|
Example
|
2014-02-14 16:56:19 +00:00
|
|
|
-------
|
2012-11-05 22:41:04 +00:00
|
|
|
See test/irc_test.go
|
2010-01-06 18:32:35 +00:00
|
|
|
|
|
|
|
Events for callbacks
|
2014-02-14 16:56:19 +00:00
|
|
|
--------------------
|
2010-01-06 18:36:27 +00:00
|
|
|
* 001 Welcome
|
|
|
|
* PING
|
|
|
|
* CTCP Unknown CTCP
|
|
|
|
* CTCP_VERSION Version request (Handled internaly)
|
|
|
|
* CTCP_USERINFO
|
|
|
|
* CTCP_CLIENTINFO
|
|
|
|
* CTCP_TIME
|
|
|
|
* CTCP_PING
|
2014-02-02 05:38:45 +00:00
|
|
|
* CTCP_ACTION (/me)
|
2010-01-06 18:36:27 +00:00
|
|
|
* PRIVMSG
|
|
|
|
* MODE
|
|
|
|
* JOIN
|
2010-01-06 18:32:35 +00:00
|
|
|
|
|
|
|
+Many more
|
|
|
|
|
|
|
|
|
|
|
|
AddCallback Example
|
2014-02-14 16:56:19 +00:00
|
|
|
-------------------
|
2012-05-11 11:49:15 +00:00
|
|
|
ircobj.AddCallback("PRIVMSG", func(event *irc.Event) {
|
2015-03-21 19:13:32 +00:00
|
|
|
//event.Message() contains the message
|
|
|
|
//event.Nick Contains the sender
|
|
|
|
//event.Arguments[0] Contains the channel
|
2010-01-06 18:32:35 +00:00
|
|
|
});
|
|
|
|
|
2016-02-06 20:33:04 +00:00
|
|
|
Please note: Callbacks are run in the main thread. If a callback needs a long
|
|
|
|
time to execute please run it in a new thread.
|
|
|
|
|
|
|
|
Example:
|
|
|
|
|
|
|
|
ircobj.AddCallback("PRIVMSG", func(event *irc.Event) {
|
|
|
|
go func(event *irc.Event) {
|
|
|
|
//event.Message() contains the message
|
|
|
|
//event.Nick Contains the sender
|
|
|
|
//event.Arguments[0] Contains the channel
|
2016-05-30 06:03:20 +00:00
|
|
|
}(event)
|
2016-02-06 20:33:04 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
|
2010-01-06 18:32:35 +00:00
|
|
|
Commands
|
|
|
|
--------
|
2012-11-07 20:57:10 +00:00
|
|
|
ircobj := irc.IRC("<nick>", "<user>") //Create new ircobj
|
|
|
|
//Set options
|
|
|
|
ircobj.UseTLS = true //default is false
|
|
|
|
//ircobj.TLSOptions //set ssl options
|
2010-09-29 07:55:31 +00:00
|
|
|
ircobj.Password = "[server password]"
|
2012-11-07 20:57:10 +00:00
|
|
|
//Commands
|
2010-09-29 07:55:31 +00:00
|
|
|
ircobj.Connect("irc.someserver.com:6667") //Connect to server
|
2014-07-24 07:13:59 +00:00
|
|
|
ircobj.SendRaw("<string>") //sends string to server. Adds \r\n
|
|
|
|
ircobj.SendRawf("<formatstring>", ...) //sends formatted string to server.n
|
2012-11-11 09:41:33 +00:00
|
|
|
ircobj.Join("<#channel> [password]")
|
2013-03-13 11:53:47 +00:00
|
|
|
ircobj.Nick("newnick")
|
2016-05-30 06:03:20 +00:00
|
|
|
ircobj.Privmsg("<nickname | #channel>", "msg") // sends a message to either a certain nick or a channel
|
2012-11-11 09:41:33 +00:00
|
|
|
ircobj.Privmsgf(<nickname | #channel>, "<formatstring>", ...)
|
2010-09-29 07:55:31 +00:00
|
|
|
ircobj.Notice("<nickname | #channel>", "msg")
|
2012-11-11 09:41:33 +00:00
|
|
|
ircobj.Noticef("<nickname | #channel>", "<formatstring>", ...)
|