From e16708c83866e2f5cfddb4d17f58b297419b19d3 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Tue, 7 Jul 2015 13:58:52 +0200 Subject: Use flags --- main.go | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) (limited to 'main.go') diff --git a/main.go b/main.go index 1517f2d..bfef975 100644 --- a/main.go +++ b/main.go @@ -2,6 +2,7 @@ package main import ( "container/ring" + "flag" "fmt" "log" "strconv" @@ -12,10 +13,10 @@ import ( "github.com/thoj/go-ircevent" ) -const ( - server = "irc.rusnet.org.ru:6660" - room = "#lor" - name = "theo" +var ( + server = flag.String("server", "irc.rusnet.org.ru:6660", "IRC Server") + room = flag.String("room", "#lor", "IRC Channel") + name = flag.String("name", "theo", "Bot Name") ) var ( @@ -42,15 +43,15 @@ func metar(e *irc.Event, arg []string) { conn := e.Connection metar, err := FetchMetar(arg[0]) if err != nil { - conn.Privmsg(room, err.Error()) + conn.Privmsg(*room, err.Error()) } else { - conn.Privmsg(room, metar[1]) + conn.Privmsg(*room, metar[1]) } } func help(e *irc.Event, _ []string) { for _, m := range dscr { - e.Connection.Privmsg(room, m) + e.Connection.Privmsg(*room, m) } } @@ -65,11 +66,11 @@ func news(e *irc.Event, arg []string) { } if time.Since(lastNews) > time.Minute { for _, n := range FetchNews(n) { - conn.Privmsg(room, n) + conn.Privmsg(*room, n) lastNews = time.Now() } } else { - conn.Privmsg(room, e.Nick+", me just said it") + conn.Privmsg(*room, e.Nick+", me just said it") } } @@ -93,8 +94,8 @@ func privmsg(e *irc.Event) { go cmd(e, arg[1:]) } default: - if strings.Contains(msg, name) { - conn.Privmsg(room, theo.Theo()) + if strings.Contains(msg, *name) { + conn.Privmsg(*room, theo.Theo()) } buffer.Value = e buffer = buffer.Next() @@ -102,6 +103,7 @@ func privmsg(e *irc.Event) { } func init() { + flag.Parse() register("last", last, "shows last 10 messages") register("metar", metar, " shows weather report") register("help", help, "shows this message") @@ -118,14 +120,14 @@ func init() { // PRIVMSG func main() { - con := irc.IRC(name, name) - err := con.Connect(server) + con := irc.IRC(*name, *name) + err := con.Connect(*server) if err != nil { log.Fatal(err) } con.AddCallback("001", func(e *irc.Event) { - e.Connection.Join(room) - log.Println("joined", room) + e.Connection.Join(*room) + log.Println("joined", *room) }) con.AddCallback("PRIVMSG", privmsg) con.Loop() -- cgit v1.2.3