From c97201c6719083ef5ff26973de63e75bfa11809c Mon Sep 17 00:00:00 2001 From: raylu Date: Mon, 25 Oct 2010 15:10:09 -0400 Subject: [PATCH] Join channels that the owner invites us to --- handler.go | 16 ++++++++++++++++ rbot.go | 7 ++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/handler.go b/handler.go index bb78240..d0eef3e 100644 --- a/handler.go +++ b/handler.go @@ -64,6 +64,22 @@ func handleMode(conn *irc.Conn, line *irc.Line) { } } +func handleInvite(conn *irc.Conn, line *irc.Line) { + if line.Args[0] != conn.Me.Nick { + return + } + + user := line.Src[strings.Index(line.Src, "!")+1:] + if user[0] == '~' { + user = user[1:] + } + + owner, _ := auth.String(conn.Network, "owner") + if user == owner { + conn.Join(line.Text) + } +} + func isChannel(target string) bool { return target[0] == '#' || target[0] == '&' } diff --git a/rbot.go b/rbot.go index 3b3b230..1df8807 100644 --- a/rbot.go +++ b/rbot.go @@ -53,6 +53,7 @@ func connect(network string) { }) c.AddHandler("privmsg", handlePrivmsg) c.AddHandler("mode", handleMode) + c.AddHandler("invite", handleInvite) for { fmt.Printf("Connecting to %s...\n", server) @@ -80,7 +81,7 @@ func autojoin(conn *irc.Conn) { } func readConf() { - var err os.Error; + var err os.Error conf, err = config.ReadDefault("rbot.conf") if (err != nil) { fmt.Printf("Config error: %s\n", err) @@ -90,14 +91,14 @@ func readConf() { func readConfString(section, option string) string { value, err := conf.String(section, option) if err != nil { - panic(fmt.Sprintf("Config error: %s", err)); + panic(fmt.Sprintf("Config error: %s", err)) } return value } func readConfBool(section, option string) bool { value, err := conf.Bool(section, option) if err != nil { - panic(fmt.Sprintf("Config error: %s", err)); + panic(fmt.Sprintf("Config error: %s", err)) } return value }