From b646b6d6b5d6715fe80d3eb508c8bcda937145b9 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 25 Dec 2016 14:44:18 +0100 Subject: kiss --- main.go | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/main.go b/main.go index 82940ff..2ff436c 100644 --- a/main.go +++ b/main.go @@ -37,22 +37,9 @@ func kicker(conn *irc.Conn, channel string) chan string { return c } -func join(room string) irc.HandlerFunc { - return func(conn *irc.Conn, _ *irc.Line) { - conn.Join(room) - } -} - -func discon(c chan struct{}) irc.HandlerFunc { - return func(_ *irc.Conn, _ *irc.Line) { - close(c) - } -} - func privmsg(note, kick chan string) irc.HandlerFunc { last := NewLastBuf(10) links := linker(note) - go Watch(note, Feeds) return func(conn *irc.Conn, line *irc.Line) { switch t := line.Text(); { case isFlood(t): @@ -93,11 +80,21 @@ func main() { done := make(chan struct{}) - conn.HandleFunc(irc.DISCONNECTED, discon(done)) - conn.HandleFunc(irc.CONNECTED, join(*room)) - conn.HandleFunc(irc.KICK, join(*room)) + conn.HandleFunc(irc.DISCONNECTED, func(_ *irc.Conn, _ *irc.Line) { + close(done) + }) + + conn.HandleFunc(irc.CONNECTED, func(conn *irc.Conn, _ *irc.Line) { + conn.Join(*room) + go Watch(note, Feeds) + }) + conn.HandleFunc(irc.PRIVMSG, privmsg(note, kick)) + conn.HandleFunc(irc.KICK, func(conn *irc.Conn, _ *irc.Line) { + conn.Join(*room) + }) + if err := conn.Connect(); err != nil { log.Fatal(err) } -- cgit v1.2.3