From bef0c7d77e17141db87f5ef24dc59941a13c94f5 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Tue, 24 Jul 2018 15:54:35 +0200 Subject: no space compare --- main.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'main.go') diff --git a/main.go b/main.go index 2f9279b..9cf4fd4 100644 --- a/main.go +++ b/main.go @@ -7,6 +7,7 @@ import ( "log" "strings" "time" + "unicode" irc "github.com/fluffle/goirc/client" ) @@ -42,6 +43,16 @@ func (n *Notify) Write(p []byte) (int, error) { return len(p), nil } +func noSpaceCompare(a, b string) bool { + dropSpaces := func(r rune) rune { + if unicode.IsSpace(r) { + return -1 + } + return r + } + return strings.Map(dropSpaces, a) == strings.Map(dropSpaces, b) +} + func privmsg(room string) irc.HandlerFunc { var ( last = make(map[string]string) @@ -59,7 +70,7 @@ func privmsg(room string) irc.HandlerFunc { case isFlood(t): log.Println("flood", line.Nick) conn.Kick(room, line.Nick) - case strings.TrimSpace(t) == strings.TrimSpace(last[line.Nick]): + case noSpaceCompare(t, last[line.Nick]): log.Println("kick", line.Nick) conn.Kick(room, line.Nick) case strings.HasPrefix(t, "s"): -- cgit v1.2.3