package main import ( "log" "sort" "strings" irc "github.com/fluffle/goirc/client" ) 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 DetectFlood(conn *irc.Conn, line *irc.Line) { if f := strings.Fields(line.Text()); len(f) > 8 { if m := MedianLength(f); m < 2 { log.Println("flood", line.Nick) conn.Kick(*room, line.Nick, "flood") } } }