Rewritten to use callbacks, bit easier to use.

This commit is contained in:
tj
2010-01-06 19:32:35 +01:00
parent 455e0cd0dd
commit 7019ec3d0e
5 changed files with 181 additions and 296 deletions

View File

@@ -5,65 +5,34 @@
package irc
import (
"os";
"net";
)
type IRCEventCode int
const (
IRC_NOTICE_AUTH IRCEventCode = 1 << iota;
IRC_PING;
IRC_QUIT;
IRC_WELCOME;
IRC_SERVER_INFO;
IRC_SERVER_UPTIME;
IRC_SERVER_VERSION;
IRC_START_MOTD;
IRC_MOTD;
IRC_END_MOTD;
IRC_CHANINFO;
IRC_STAT_USERS;
IRC_STAT_OPERS;
IRC_STAT_UNKN;
IRC_STAT_CONNS;
IRC_CHAN_TIMESTAMP;
IRC_CHAN_NICKLIST;
IRC_CHAN_TOPIC;
IRC_CHAN_MODE;
IRC_PRIVMSG;
IRC_ACTION;
IRC_JOIN;
IRC_MODE;
ERROR;
UNKNOWN;
"os"
"net"
)
type IRCConnection struct {
socket net.Conn;
pread, pwrite chan string;
perror chan os.Error;
EventChan chan *IRCEvent;
Error os.Error;
nick string;
user string;
registered bool;
server string;
socket net.Conn
pread, pwrite chan string
Error chan os.Error
nick string
user string
registered bool
server string
events map[string][]func(*IRCEvent)
lastMessage int64;
ticker <-chan int64;
ticker2 <-chan int64;
}
type IRCEvent struct {
Message string;
RawMessage string;
Sender string;
SenderHost string;
SenderUser string;
Target string;
Channel string;
Code IRCEventCode;
Error os.Error;
Code string
Message string
Raw string
Nick string //<nick>
Host string //<nick>!<usr>@<host>
Source string //<host>
User string //<usr>
Arguments []string
}