diff --git a/main.go b/main.go index f9a96da..d68c647 100644 --- a/main.go +++ b/main.go @@ -10,11 +10,13 @@ import ( "flag" "fmt" "log" + "runtime" "strings" "time" "github.com/nickvanw/ircx" "github.com/sorcix/irc" + "github.com/sorcix/irc/ctcp" "flokatirc/modules" "flokatirc/version" @@ -105,9 +107,9 @@ func ConnectHandler(s ircx.Sender, m *irc.Message) { Params: []string{ch}, }) } - time.Sleep(5 * time.Second) - //sayCh <- fmt.Sprintf("%s\n\001ACTION running on %s", "*", SoftwareInfo()) - sayCh <- fmt.Sprintf("%s\n%s", "*", SoftwareInfo()) + time.Sleep(2 * time.Second) + msg := ctcp.Encode(ctcp.ACTION, fmt.Sprintf("running on %s", SoftwareInfo())) + sayCh <- fmt.Sprintf("%s\n%s", "*", msg) } func PingHandler(s ircx.Sender, m *irc.Message) { @@ -132,12 +134,14 @@ func HandleMessage(m *irc.Message) { } switch tok[0] { case "!version": - //sayCh <- fmt.Sprintf("%s\n\001ACTION running on %s", "*", SoftwareInfo()) - sayCh <- fmt.Sprintf("%s\n%s", "*", SoftwareInfo()) + msg := ctcp.Encode(ctcp.ACTION, fmt.Sprintf("running on %s", SoftwareInfo())) + sayCh <- fmt.Sprintf("%s\n%s", "*", msg) + //sayCh <- fmt.Sprintf("%s\n%s", "*", SoftwareInfo()) default: } } func SoftwareInfo() string { - return fmt.Sprintf("flokatirc %s-%s (built %s)", version.FlokatiVersion, version.FlokatiBuild, version.FlokatiBuilddate) + return fmt.Sprintf("flokatirc %s-%s (built %s [%s])", version.FlokatiVersion, + version.FlokatiBuild, version.FlokatiBuilddate, runtime.Version()) } diff --git a/modules/coffee.go b/modules/coffee.go index 2f604c0..4e61390 100644 --- a/modules/coffee.go +++ b/modules/coffee.go @@ -20,7 +20,7 @@ func init() { } func coffeeHandleMessage(m *irc.Message) { - tok := strings.Split(m.Trailing, " ") + tok := strings.Split(strings.Trim(m.Trailing, " "), " ") if len(tok) < 1 { return } diff --git a/modules/fuzzytime.go b/modules/fuzzytime.go index 38a09c3..4ce52cb 100644 --- a/modules/fuzzytime.go +++ b/modules/fuzzytime.go @@ -31,7 +31,6 @@ func fuzzytimeHandleMessage(m *irc.Message) { } func fuzzytimeShow() { - log.Println("timeshow") t := time.Now() h := t.Hour() tzcorrect := 1 @@ -66,9 +65,7 @@ func fuzzytimeShow() { default: s += fmt.Sprintf("%s Uhr\n", fuzzytimeSayHour(h+1)) } - log.Println("saying now:", s) SayCh <- fmt.Sprintf("*\n%s", s) - } func fuzzytimeSayHour(h int) string { diff --git a/modules/modules.go b/modules/modules.go new file mode 100644 index 0000000..ee61d66 --- /dev/null +++ b/modules/modules.go @@ -0,0 +1,35 @@ +// vi:ts=4:sts=4:sw=4:noet:tw=72 +// +// flokatirc +// +// Copyright (c) 2015,2016 Andreas Neue + +package modules + +import ( + "log" + "strings" + + "github.com/sorcix/irc" +) + +var ( + SayCh chan string + MsgHandlers = make(map[string]func(*irc.Message)) + ModParams = make(map[string]string) +) + +func Init(ch chan string, params string) { + SayCh = ch + for _, param := range strings.Split(params, "!") { + kv := strings.Split(param, ":") + ModParams[kv[0]] = kv[1] + log.Println(kv[0], kv[1]) + } +} + +func HandleMessage(m *irc.Message) { + for _, fn := range MsgHandlers { + fn(m) + } +} diff --git a/modules/rss.go b/modules/rss.go index 4000082..10b4a5f 100644 --- a/modules/rss.go +++ b/modules/rss.go @@ -66,7 +66,7 @@ func rssPollFeed(uri string, timeout int, cr xmlx.CharsetFunc) { } func rssChanHandler(feed *gorss.Feed, newchannels []*gorss.Channel) { - SayCh <- fmt.Sprintf("%s\n[RSS] %d new channel(s) in %s", "*", len(newchannels), feed.Url) + //SayCh <- fmt.Sprintf("%s\n[RSS] %d new channel(s) in %s", "*", len(newchannels), feed.Url) } func rssItemHandler(feed *gorss.Feed, ch *gorss.Channel, newitems []*gorss.Item) {