From d7f357be25c5646ab984d694907c106e076139b4 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Wed, 10 Jan 2018 16:03:26 +0100 Subject: kick on flood --- main.go | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/main.go b/main.go index bf32468..3e226f6 100644 --- a/main.go +++ b/main.go @@ -36,8 +36,10 @@ func (n *Notify) Write(p []byte) (int, error) { } func privmsg(room string) irc.HandlerFunc { - last := make(map[string]string) - lastRe := make(map[string]string) + var ( + last = make(map[string]string) + lastRe = make(map[string]string) + ) return func(conn *irc.Conn, line *irc.Line) { defer func() { if r := recover(); r != nil { @@ -47,15 +49,15 @@ func privmsg(room string) irc.HandlerFunc { switch t := line.Text(); { case isFlood(t): if line.Nick != conn.Me().Nick { - log.Println("Kick", line.Nick) + log.Println("flood", line.Nick) conn.Kick(room, line.Nick) } + case t == last[line.Nick]: + log.Println("kick", line.Nick) + conn.Kick(room, line.Nick) + case t == lastRe[line.Nick]: + log.Println("ignore", t) case strings.HasPrefix(t, "s"): - if t == lastRe[line.Nick] { - log.Println("ignore", t) - return - } - lastRe[line.Nick] = t global := strings.HasSuffix(t, "g") if tofix, ok := last[line.Nick]; ok { fixed := re(tofix, t[1:], global) @@ -64,6 +66,7 @@ func privmsg(room string) irc.HandlerFunc { fmt.Fprintf(NewNotify(conn, line.Target()), "%v meant to say: %s", line.Nick, fixed) } } + lastRe[line.Nick] = t default: for _, v := range getLinks(t) { title, err := getTitle(v) -- cgit v1.2.3