From 48f0b5bc2c42bba866bbed26b7fa0741b7664179 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Wed, 29 Jul 2015 20:20:01 +0200 Subject: Kick on timeout, detect flood only on public line --- command.go | 8 ++++++-- flood.go | 2 +- main.go | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/command.go b/command.go index f576b13..f2f085b 100644 --- a/command.go +++ b/command.go @@ -48,8 +48,12 @@ func Dispatch(conn *irc.Conn, line *irc.Line) { if f := strings.Fields(line.Text()); len(f) > 0 { cmd := strings.ToLower(f[0]) if c, ok := commands[cmd]; ok { - if c.WithArgs(len(f)) && - !(line.Public() && c.Timeout(line.Nick)) { + if line.Public() && c.Timeout(line.Nick) { + log.Println("timeout", line.Nick) + conn.Kick(*room, line.Nick, "timeout") + return + } + if c.WithArgs(len(f)) { log.Println(line.Nick, f) c.Handle(conn, line) } diff --git a/flood.go b/flood.go index 198ee3b..59949e7 100644 --- a/flood.go +++ b/flood.go @@ -23,7 +23,7 @@ func MedianLength(v []string) int { 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("kick", line.Nick) + log.Println("flood", line.Nick) conn.Kick(*room, line.Nick, "flood") } } diff --git a/main.go b/main.go index 1317cb1..8e2c086 100644 --- a/main.go +++ b/main.go @@ -43,8 +43,8 @@ func main() { go Dispatch(conn, line) go ExtractLinks(conn, line) go ExtractRFC(conn, line) - go DetectFlood(conn, line) if line.Public() && line.Nick != conn.Me().Nick { + go DetectFlood(conn, line) Push(line) Count(line.Nick) } -- cgit v1.2.3