removed *Ex Callbacks in favor of all callbacks having *Connection
All checks were successful
irc build / Build (push) Successful in 1m36s
All checks were successful
irc build / Build (push) Successful in 1m36s
passed to them
This commit is contained in:
parent
9b84bb10db
commit
ceb1d3dd1a
58
irc.go
58
irc.go
@ -18,22 +18,18 @@ const (
|
||||
|
||||
// Connection holds the callbacks for the client
|
||||
type Connection struct {
|
||||
Sock net.Conn
|
||||
DirectCallback func(string, string)
|
||||
PrivmsgCallback func(string, string, string)
|
||||
JoinCallback func(string, string)
|
||||
QuitCallback func(string, string)
|
||||
PartCallback func(string, string, string)
|
||||
NickCallback func(string, string)
|
||||
NumericCallback func(string, int, string)
|
||||
PrivmsgCallbackEx func(*Connection, string, string, string)
|
||||
JoinCallbackEx func(*Connection, string, string)
|
||||
QuitCallbackEx func(*Connection, string, string)
|
||||
PartCallbackEx func(*Connection, string, string, string)
|
||||
joined bool
|
||||
channels []string
|
||||
curNick string
|
||||
userList map[string][]string
|
||||
Sock net.Conn
|
||||
DirectCallback func(*Connection, string, string)
|
||||
PrivmsgCallback func(*Connection, string, string, string)
|
||||
JoinCallback func(*Connection, string, string)
|
||||
QuitCallback func(*Connection, string, string)
|
||||
PartCallback func(*Connection, string, string, string)
|
||||
NickCallback func(*Connection, string, string)
|
||||
NumericCallback func(*Connection, string, int, string)
|
||||
joined bool
|
||||
channels []string
|
||||
curNick string
|
||||
userList map[string][]string
|
||||
}
|
||||
|
||||
func cleanInput(msg string) string {
|
||||
@ -248,7 +244,7 @@ func (c *Connection) parseMessage(line string) {
|
||||
|
||||
if c.NumericCallback != nil {
|
||||
code, _ := strconv.Atoi(cmd)
|
||||
c.NumericCallback(from, code, args)
|
||||
c.NumericCallback(c, from, code, args)
|
||||
}
|
||||
} else {
|
||||
t := strings.SplitN(args, ":", 2)
|
||||
@ -262,43 +258,27 @@ func (c *Connection) parseMessage(line string) {
|
||||
case "privmsg":
|
||||
if target != c.curNick {
|
||||
if c.PrivmsgCallback != nil {
|
||||
c.PrivmsgCallback(target, from, msg)
|
||||
}
|
||||
|
||||
if c.PrivmsgCallbackEx != nil {
|
||||
c.PrivmsgCallbackEx(c, target, from, msg)
|
||||
c.PrivmsgCallback(c, target, from, msg)
|
||||
}
|
||||
} else {
|
||||
if c.DirectCallback != nil {
|
||||
c.DirectCallback(from, msg)
|
||||
c.DirectCallback(c, from, msg)
|
||||
}
|
||||
}
|
||||
case "join":
|
||||
c.addNick(msg, GetNick(from))
|
||||
if c.JoinCallback != nil {
|
||||
c.JoinCallback(from, msg)
|
||||
}
|
||||
|
||||
if c.JoinCallbackEx != nil {
|
||||
c.JoinCallbackEx(c, from, msg)
|
||||
c.JoinCallback(c, from, msg)
|
||||
}
|
||||
case "quit":
|
||||
c.removeNickAllChans(GetNick(from))
|
||||
if c.QuitCallback != nil {
|
||||
c.QuitCallback(from, msg)
|
||||
}
|
||||
|
||||
if c.QuitCallbackEx != nil {
|
||||
c.QuitCallbackEx(c, from, msg)
|
||||
c.QuitCallback(c, from, msg)
|
||||
}
|
||||
case "part":
|
||||
c.removeNick(target, GetNick(from))
|
||||
if c.PartCallback != nil {
|
||||
c.PartCallback(from, target, msg)
|
||||
}
|
||||
|
||||
if c.PartCallbackEx != nil {
|
||||
c.PartCallbackEx(c, from, target, msg)
|
||||
c.PartCallback(c, from, target, msg)
|
||||
}
|
||||
case "nick":
|
||||
if GetNick(from) == c.curNick {
|
||||
@ -306,7 +286,7 @@ func (c *Connection) parseMessage(line string) {
|
||||
log.Printf("BOT NICK CHANGED TO: %s\n", c.curNick)
|
||||
}
|
||||
if c.NickCallback != nil {
|
||||
c.NickCallback(from, msg)
|
||||
c.NickCallback(c, from, msg)
|
||||
}
|
||||
default:
|
||||
//log.Printf("unhandled command: %s %s %s", cmd, target, msg)
|
||||
|
@ -21,7 +21,7 @@ func GetServerInfo(server, nick string) ServerInfo {
|
||||
|
||||
con := NewConnection(server, nick, nick, nil, nil)
|
||||
|
||||
con.NumericCallback = func(from string, i int, args string) {
|
||||
con.NumericCallback = func(c *Connection, from string, i int, args string) {
|
||||
switch i {
|
||||
case RPL_LUSERCLIENT:
|
||||
s := strings.Split(args, ":")
|
||||
|
10
irc_test.go
10
irc_test.go
@ -9,7 +9,7 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
channel = "#testing"
|
||||
channel = "#test"
|
||||
)
|
||||
|
||||
func TestJoinChannel(t *testing.T) {
|
||||
@ -39,7 +39,7 @@ func TestJoinChannel(t *testing.T) {
|
||||
func TestJoinCallback(t *testing.T) {
|
||||
con := NewConnection("irc.ouch.chat:6667", "irc-go", "irc-go", nil, []string{channel})
|
||||
i := 0
|
||||
con.JoinCallback = func(from, target string) {
|
||||
con.JoinCallback = func(c *Connection, from, target string) {
|
||||
i++
|
||||
for _, x := range con.userList[channel] {
|
||||
con.SendPrivmsg(channel, x)
|
||||
@ -72,7 +72,7 @@ func TestJoinCallback(t *testing.T) {
|
||||
func TestLusers(t *testing.T) {
|
||||
con := NewConnection("irc.ouch.chat:6667", "irc-go", "irc-go", nil, []string{channel})
|
||||
|
||||
con.NumericCallback = func(from string, i int, args string) {
|
||||
con.NumericCallback = func(c *Connection, from string, i int, args string) {
|
||||
if i == RPL_LUSERCLIENT {
|
||||
con.SendJoin(channel)
|
||||
|
||||
@ -94,7 +94,7 @@ func TestLusers(t *testing.T) {
|
||||
func TestLusersChannels(t *testing.T) {
|
||||
con := NewConnection("irc.ouch.chat:6667", "irc-go", "irc-go", nil, []string{channel})
|
||||
|
||||
con.NumericCallback = func(from string, i int, args string) {
|
||||
con.NumericCallback = func(c *Connection, from string, i int, args string) {
|
||||
if i == RPL_LUSERCHANNELS {
|
||||
con.SendJoin(channel)
|
||||
|
||||
@ -115,7 +115,7 @@ func TestLusersChannels(t *testing.T) {
|
||||
func TestGetServerInfo(t *testing.T) {
|
||||
con := NewConnection("irc.ouch.chat:6667", "irc-go", "irc-go", nil, []string{channel})
|
||||
|
||||
con.NumericCallback = func(from string, i int, args string) {
|
||||
con.NumericCallback = func(c *Connection, from string, i int, args string) {
|
||||
if i == RPL_ENDOFMOTD {
|
||||
go func() {
|
||||
res := GetServerInfo("irc.libera.chat:6667", "irc-go4240")
|
||||
|
Loading…
x
Reference in New Issue
Block a user