summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-12-25 14:44:18 +0100
committerDimitri Sokolyuk <demon@dim13.org>2016-12-25 14:44:18 +0100
commitb646b6d6b5d6715fe80d3eb508c8bcda937145b9 (patch)
tree3efba7b863fc66d8929de8738e4a0e6821196cc0
parent1c780ab0000890760bc923fc9322dd8462e83fa1 (diff)
kiss
-rw-r--r--main.go29
1 files 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)
}