From ceb1d3dd1aae94bc60605ffd82a968124cfd5738 Mon Sep 17 00:00:00 2001 From: blackbeard420 Date: Thu, 6 Mar 2025 22:40:07 -0500 Subject: [PATCH] removed *Ex Callbacks in favor of all callbacks having *Connection passed to them --- irc.go | 58 +++++++++++++++++--------------------------------- irc_helpers.go | 2 +- irc_test.go | 10 ++++----- 3 files changed, 25 insertions(+), 45 deletions(-) diff --git a/irc.go b/irc.go index 7be42cd..d285258 100644 --- a/irc.go +++ b/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) diff --git a/irc_helpers.go b/irc_helpers.go index 1341155..18be185 100644 --- a/irc_helpers.go +++ b/irc_helpers.go @@ -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, ":") diff --git a/irc_test.go b/irc_test.go index e440226..324519b 100644 --- a/irc_test.go +++ b/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")