summaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-07-20 13:42:28 +0200
committerDimitri Sokolyuk <demon@dim13.org>2015-07-20 13:42:28 +0200
commit4ea2452eff6fb55d2e4f9c6f085cb2ed2e8bcf8c (patch)
tree55caeccd793031dd9d1dc52650f14356b7a6a6a9 /main.go
parent06a4e6fc3947afb5ba2c20ab08bf458cd4dfbcca (diff)
Read flood kicker
Diffstat (limited to 'main.go')
-rw-r--r--main.go17
1 files changed, 17 insertions, 0 deletions
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() {