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
|
// Connection holds the callbacks for the client
|
||||||
type Connection struct {
|
type Connection struct {
|
||||||
Sock net.Conn
|
Sock net.Conn
|
||||||
DirectCallback func(string, string)
|
DirectCallback func(*Connection, string, string)
|
||||||
PrivmsgCallback func(string, string, string)
|
PrivmsgCallback func(*Connection, string, string, string)
|
||||||
JoinCallback func(string, string)
|
JoinCallback func(*Connection, string, string)
|
||||||
QuitCallback func(string, string)
|
QuitCallback func(*Connection, string, string)
|
||||||
PartCallback func(string, string, string)
|
PartCallback func(*Connection, string, string, string)
|
||||||
NickCallback func(string, string)
|
NickCallback func(*Connection, string, string)
|
||||||
NumericCallback func(string, int, string)
|
NumericCallback func(*Connection, string, int, string)
|
||||||
PrivmsgCallbackEx func(*Connection, string, string, string)
|
joined bool
|
||||||
JoinCallbackEx func(*Connection, string, string)
|
channels []string
|
||||||
QuitCallbackEx func(*Connection, string, string)
|
curNick string
|
||||||
PartCallbackEx func(*Connection, string, string, string)
|
userList map[string][]string
|
||||||
joined bool
|
|
||||||
channels []string
|
|
||||||
curNick string
|
|
||||||
userList map[string][]string
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func cleanInput(msg string) string {
|
func cleanInput(msg string) string {
|
||||||
@ -248,7 +244,7 @@ func (c *Connection) parseMessage(line string) {
|
|||||||
|
|
||||||
if c.NumericCallback != nil {
|
if c.NumericCallback != nil {
|
||||||
code, _ := strconv.Atoi(cmd)
|
code, _ := strconv.Atoi(cmd)
|
||||||
c.NumericCallback(from, code, args)
|
c.NumericCallback(c, from, code, args)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
t := strings.SplitN(args, ":", 2)
|
t := strings.SplitN(args, ":", 2)
|
||||||
@ -262,43 +258,27 @@ func (c *Connection) parseMessage(line string) {
|
|||||||
case "privmsg":
|
case "privmsg":
|
||||||
if target != c.curNick {
|
if target != c.curNick {
|
||||||
if c.PrivmsgCallback != nil {
|
if c.PrivmsgCallback != nil {
|
||||||
c.PrivmsgCallback(target, from, msg)
|
c.PrivmsgCallback(c, target, from, msg)
|
||||||
}
|
|
||||||
|
|
||||||
if c.PrivmsgCallbackEx != nil {
|
|
||||||
c.PrivmsgCallbackEx(c, target, from, msg)
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if c.DirectCallback != nil {
|
if c.DirectCallback != nil {
|
||||||
c.DirectCallback(from, msg)
|
c.DirectCallback(c, from, msg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case "join":
|
case "join":
|
||||||
c.addNick(msg, GetNick(from))
|
c.addNick(msg, GetNick(from))
|
||||||
if c.JoinCallback != nil {
|
if c.JoinCallback != nil {
|
||||||
c.JoinCallback(from, msg)
|
c.JoinCallback(c, from, msg)
|
||||||
}
|
|
||||||
|
|
||||||
if c.JoinCallbackEx != nil {
|
|
||||||
c.JoinCallbackEx(c, from, msg)
|
|
||||||
}
|
}
|
||||||
case "quit":
|
case "quit":
|
||||||
c.removeNickAllChans(GetNick(from))
|
c.removeNickAllChans(GetNick(from))
|
||||||
if c.QuitCallback != nil {
|
if c.QuitCallback != nil {
|
||||||
c.QuitCallback(from, msg)
|
c.QuitCallback(c, from, msg)
|
||||||
}
|
|
||||||
|
|
||||||
if c.QuitCallbackEx != nil {
|
|
||||||
c.QuitCallbackEx(c, from, msg)
|
|
||||||
}
|
}
|
||||||
case "part":
|
case "part":
|
||||||
c.removeNick(target, GetNick(from))
|
c.removeNick(target, GetNick(from))
|
||||||
if c.PartCallback != nil {
|
if c.PartCallback != nil {
|
||||||
c.PartCallback(from, target, msg)
|
c.PartCallback(c, from, target, msg)
|
||||||
}
|
|
||||||
|
|
||||||
if c.PartCallbackEx != nil {
|
|
||||||
c.PartCallbackEx(c, from, target, msg)
|
|
||||||
}
|
}
|
||||||
case "nick":
|
case "nick":
|
||||||
if GetNick(from) == c.curNick {
|
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)
|
log.Printf("BOT NICK CHANGED TO: %s\n", c.curNick)
|
||||||
}
|
}
|
||||||
if c.NickCallback != nil {
|
if c.NickCallback != nil {
|
||||||
c.NickCallback(from, msg)
|
c.NickCallback(c, from, msg)
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
//log.Printf("unhandled command: %s %s %s", cmd, target, msg)
|
//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 := 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 {
|
switch i {
|
||||||
case RPL_LUSERCLIENT:
|
case RPL_LUSERCLIENT:
|
||||||
s := strings.Split(args, ":")
|
s := strings.Split(args, ":")
|
||||||
|
10
irc_test.go
10
irc_test.go
@ -9,7 +9,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
channel = "#testing"
|
channel = "#test"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestJoinChannel(t *testing.T) {
|
func TestJoinChannel(t *testing.T) {
|
||||||
@ -39,7 +39,7 @@ func TestJoinChannel(t *testing.T) {
|
|||||||
func TestJoinCallback(t *testing.T) {
|
func TestJoinCallback(t *testing.T) {
|
||||||
con := NewConnection("irc.ouch.chat:6667", "irc-go", "irc-go", nil, []string{channel})
|
con := NewConnection("irc.ouch.chat:6667", "irc-go", "irc-go", nil, []string{channel})
|
||||||
i := 0
|
i := 0
|
||||||
con.JoinCallback = func(from, target string) {
|
con.JoinCallback = func(c *Connection, from, target string) {
|
||||||
i++
|
i++
|
||||||
for _, x := range con.userList[channel] {
|
for _, x := range con.userList[channel] {
|
||||||
con.SendPrivmsg(channel, x)
|
con.SendPrivmsg(channel, x)
|
||||||
@ -72,7 +72,7 @@ func TestJoinCallback(t *testing.T) {
|
|||||||
func TestLusers(t *testing.T) {
|
func TestLusers(t *testing.T) {
|
||||||
con := NewConnection("irc.ouch.chat:6667", "irc-go", "irc-go", nil, []string{channel})
|
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 {
|
if i == RPL_LUSERCLIENT {
|
||||||
con.SendJoin(channel)
|
con.SendJoin(channel)
|
||||||
|
|
||||||
@ -94,7 +94,7 @@ func TestLusers(t *testing.T) {
|
|||||||
func TestLusersChannels(t *testing.T) {
|
func TestLusersChannels(t *testing.T) {
|
||||||
con := NewConnection("irc.ouch.chat:6667", "irc-go", "irc-go", nil, []string{channel})
|
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 {
|
if i == RPL_LUSERCHANNELS {
|
||||||
con.SendJoin(channel)
|
con.SendJoin(channel)
|
||||||
|
|
||||||
@ -115,7 +115,7 @@ func TestLusersChannels(t *testing.T) {
|
|||||||
func TestGetServerInfo(t *testing.T) {
|
func TestGetServerInfo(t *testing.T) {
|
||||||
con := NewConnection("irc.ouch.chat:6667", "irc-go", "irc-go", nil, []string{channel})
|
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 {
|
if i == RPL_ENDOFMOTD {
|
||||||
go func() {
|
go func() {
|
||||||
res := GetServerInfo("irc.libera.chat:6667", "irc-go4240")
|
res := GetServerInfo("irc.libera.chat:6667", "irc-go4240")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user