summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2018-01-10 16:03:26 +0100
committerDimitri Sokolyuk <demon@dim13.org>2018-01-10 16:03:26 +0100
commitd7f357be25c5646ab984d694907c106e076139b4 (patch)
tree0658c63d5a8f1a42b506780b4c3dbbe25a659210
parent327baead8c52fcf8595d2772f8a2baf0550015cc (diff)
kick on flood
-rw-r--r--main.go19
1 files changed, 11 insertions, 8 deletions
diff --git a/main.go b/main.go
index bf32468..3e226f6 100644
--- a/main.go
+++ b/main.go
@@ -36,8 +36,10 @@ func (n *Notify) Write(p []byte) (int, error) {
}
func privmsg(room string) irc.HandlerFunc {
- last := make(map[string]string)
- lastRe := make(map[string]string)
+ var (
+ last = make(map[string]string)
+ lastRe = make(map[string]string)
+ )
return func(conn *irc.Conn, line *irc.Line) {
defer func() {
if r := recover(); r != nil {
@@ -47,15 +49,15 @@ func privmsg(room string) irc.HandlerFunc {
switch t := line.Text(); {
case isFlood(t):
if line.Nick != conn.Me().Nick {
- log.Println("Kick", line.Nick)
+ log.Println("flood", line.Nick)
conn.Kick(room, line.Nick)
}
+ case t == last[line.Nick]:
+ log.Println("kick", line.Nick)
+ conn.Kick(room, line.Nick)
+ case t == lastRe[line.Nick]:
+ log.Println("ignore", t)
case strings.HasPrefix(t, "s"):
- if t == lastRe[line.Nick] {
- log.Println("ignore", t)
- return
- }
- lastRe[line.Nick] = t
global := strings.HasSuffix(t, "g")
if tofix, ok := last[line.Nick]; ok {
fixed := re(tofix, t[1:], global)
@@ -64,6 +66,7 @@ func privmsg(room string) irc.HandlerFunc {
fmt.Fprintf(NewNotify(conn, line.Target()), "%v meant to say: %s", line.Nick, fixed)
}
}
+ lastRe[line.Nick] = t
default:
for _, v := range getLinks(t) {
title, err := getTitle(v)