From 6dd926817d0fc77fdeeb5aea0c5ad156d5007c4e Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Tue, 21 Jul 2015 17:39:50 +0200 Subject: Split more --- main.go | 56 +++++--------------------------------------------------- 1 file changed, 5 insertions(+), 51 deletions(-) (limited to 'main.go') diff --git a/main.go b/main.go index 9a2922b..b09d1c1 100644 --- a/main.go +++ b/main.go @@ -3,8 +3,6 @@ package main import ( "flag" "log" - "sort" - "strings" irc "github.com/fluffle/goirc/client" ) @@ -15,58 +13,14 @@ var ( name = flag.String("name", "dim13", "Bots Name") ) -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()) - if line.Public() && line.Nick != conn.Me().Nick { - buffer.Value = line - buffer = buffer.Next() + Push(line) Count(line.Nick) } - - // lookup command - if len(f) > 0 { - cmd := strings.ToLower(f[0]) - if c, ok := commands[cmd]; ok { - if c.WithArgs(len(f)) && !(line.Public() && c.Timeout()) { - log.Println(line.Nick, f) - go c.Handle(conn, line) - } - } - } - - // extract single link and fetch title - for _, v := range f { - if strings.HasPrefix(v, "http") { - go func(url string) { - log.Println(line.Nick, url) - t, err := FetchTitle(url) - if err != nil { - log.Println(err) - } - if t != "" { - conn.Privmsg(line.Target(), "Title: "+t) - } - }(v) - } - } - - if m := MedianLength(f); len(f) > 4 && m < 2 { - log.Println("kick", line.Nick) - conn.Kick(*room, line.Nick, "flood") - } + Dispatch(conn, line) + ExtractLinks(conn, line) + DetectFlood(conn, line) } func init() { @@ -91,7 +45,7 @@ func main() { log.Fatal(err) } - go autoSave() + go AutoSave() <-quit } -- cgit v1.2.3