From 4ea2452eff6fb55d2e4f9c6f085cb2ed2e8bcf8c Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Mon, 20 Jul 2015 13:42:28 +0200 Subject: Read flood kicker --- main.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'main.go') diff --git a/main.go b/main.go index ce6f521..da82ff8 100644 --- a/main.go +++ b/main.go @@ -137,6 +137,18 @@ func (_ Blame) Handle(conn *irc.Conn, line *irc.Line) { } } +func MedianLength(v []string) int { + if len(v) == 0 { + return 0 + } + l := make([]int, len(v)) + for i, s := range v { + l[i] = len(s) + } + sort.Sort(sort.IntSlice(l)) + return l[len(l)/2] +} + func privmsg(conn *irc.Conn, line *irc.Line) { f := strings.Fields(line.Text()) @@ -172,6 +184,11 @@ func privmsg(conn *irc.Conn, line *irc.Line) { }(v) } } + + if m := MedianLength(f); len(f) > 4 && m < 2 { + log.Println("kick", line.Nick) + conn.Kick(*room, line.Nick, "flood") + } } func init() { -- cgit v1.2.3