Merge pull request #26 from iopred/cfgmessages

Moved QUIT and VERSION responses into the config.
This commit is contained in:
Alex Bee 2013-02-27 11:24:27 -08:00
commit 7bb84985ee
4 changed files with 18 additions and 10 deletions

View File

@ -49,7 +49,7 @@ func (conn *Conn) Kick(channel, nick string, message ...string) {
func (conn *Conn) Quit(message ...string) { func (conn *Conn) Quit(message ...string) {
msg := strings.Join(message, " ") msg := strings.Join(message, " ")
if msg == "" { if msg == "" {
msg = "GoBye!" msg = conn.cfg.QuitMessage
} }
conn.out <- "QUIT :" + msg conn.out <- "QUIT :" + msg
} }

View File

@ -66,6 +66,12 @@ type Config struct {
// Set this to true to disable flood protection and false to re-enable // Set this to true to disable flood protection and false to re-enable
Flood bool Flood bool
// Sent as the reply to a CTCP VERSION message
Version string
// Sent as the QUIT message.
QuitMessage string
} }
func NewConfig(nick string, args ...string) *Config { func NewConfig(nick string, args ...string) *Config {
@ -82,6 +88,8 @@ func NewConfig(nick string, args ...string) *Config {
if len(args) > 1 && args[1] != "" { if len(args) > 1 && args[1] != "" {
cfg.Me.Name = args[1] cfg.Me.Name = args[1]
} }
cfg.Version = "Powered by GoIRC"
cfg.QuitMessage = "GoBye!"
return cfg return cfg
} }

View File

@ -8,19 +8,19 @@ import (
) )
const ( const (
REGISTER = "REGISTER" REGISTER = "REGISTER"
CONNECTED = "CONNECTED" CONNECTED = "CONNECTED"
DISCONNECTED = "DISCONNECTED" DISCONNECTED = "DISCONNECTED"
) )
// sets up the internal event handlers to do essential IRC protocol things // sets up the internal event handlers to do essential IRC protocol things
var intHandlers = map[string]HandlerFunc{ var intHandlers = map[string]HandlerFunc{
REGISTER: (*Conn).h_REGISTER, REGISTER: (*Conn).h_REGISTER,
"001": (*Conn).h_001, "001": (*Conn).h_001,
"433": (*Conn).h_433, "433": (*Conn).h_433,
"CTCP": (*Conn).h_CTCP, "CTCP": (*Conn).h_CTCP,
"NICK": (*Conn).h_NICK, "NICK": (*Conn).h_NICK,
"PING": (*Conn).h_PING, "PING": (*Conn).h_PING,
} }
func (conn *Conn) addIntHandlers() { func (conn *Conn) addIntHandlers() {
@ -87,7 +87,7 @@ func (conn *Conn) h_433(line *Line) {
// Handle VERSION requests and CTCP PING // Handle VERSION requests and CTCP PING
func (conn *Conn) h_CTCP(line *Line) { func (conn *Conn) h_CTCP(line *Line) {
if line.Args[0] == "VERSION" { if line.Args[0] == "VERSION" {
conn.CtcpReply(line.Nick, "VERSION", "powered by goirc...") conn.CtcpReply(line.Nick, "VERSION", conn.cfg.Version)
} else if line.Args[0] == "PING" { } else if line.Args[0] == "PING" {
conn.CtcpReply(line.Nick, "PING", line.Args[2]) conn.CtcpReply(line.Nick, "PING", line.Args[2])
} }

View File

@ -147,7 +147,7 @@ func TestCTCP(t *testing.T) {
c.h_CTCP(parseLine(":blah!moo@cows.com PRIVMSG test :\001VERSION\001")) c.h_CTCP(parseLine(":blah!moo@cows.com PRIVMSG test :\001VERSION\001"))
// Expect a version reply // Expect a version reply
s.nc.Expect("NOTICE blah :\001VERSION powered by goirc...\001") s.nc.Expect("NOTICE blah :\001VERSION Powered by GoIRC\001")
// Call handler with CTCP PING // Call handler with CTCP PING
c.h_CTCP(parseLine(":blah!moo@cows.com PRIVMSG test :\001PING 1234567890\001")) c.h_CTCP(parseLine(":blah!moo@cows.com PRIVMSG test :\001PING 1234567890\001"))