aboutsummaryrefslogtreecommitdiff
path: root/irc/splatbot/handler.go
diff options
context:
space:
mode:
Diffstat (limited to 'irc/splatbot/handler.go')
-rw-r--r--irc/splatbot/handler.go53
1 files changed, 53 insertions, 0 deletions
diff --git a/irc/splatbot/handler.go b/irc/splatbot/handler.go
new file mode 100644
index 0000000..51ff843
--- /dev/null
+++ b/irc/splatbot/handler.go
@@ -0,0 +1,53 @@
+package main
+
+import (
+ "encoding/json"
+ "io/ioutil"
+ "log"
+ "net/http"
+ "strings"
+
+ "github.com/belak/irc"
+)
+
+func handlePrivmsg(c *irc.Client, e *irc.Event) {
+ if strings.HasPrefix(e.Trailing(), "!splatoon") {
+ splatoonLookup(c, e)
+ }
+}
+
+func splatoonLookup(c *irc.Client, e *irc.Event) {
+ resp, err := http.Get(url)
+ if err != nil {
+ c.Reply(e, "Couldn't look up splatoon maps: %s", err.Error())
+ return
+ }
+
+ body, err := ioutil.ReadAll(resp.Body)
+ if err != nil {
+ c.Reply(e, "Couldn't look up splatoon maps: %s", err.Error())
+ return
+ }
+
+ defer resp.Body.Close()
+
+ var sd []SplatoonData
+ err = json.Unmarshal(body, &sd)
+ if err != nil {
+ c.Reply(e, "Couldn't look up splatoon maps: %s", err.Error())
+ return
+ }
+
+ data := sd[0]
+
+ stage1 := data.Stages[0]
+ stage2 := data.Stages[1]
+ c.Reply(
+ e,
+ "From %s to %s, the stage rotation is %s and %s",
+ data.DatetimeTermBegin, data.DatetimeTermEnd,
+ englishIfy(stage1), englishIfy(stage2),
+ )
+
+ log.Printf("%s asked me to look up data", e.Identity.Nick)
+}