func main() { flag.Parse() if len(*authToken) == 0 || len(*roomName) == 0 { log.Fatal("usage: buster -token=<hipchat token> -room=<room name>") } lastTime = time.Now() c := hipchat.Client{AuthToken: *authToken} roomId := "" l, err := c.RoomList() if err != nil { log.Fatalf("RoomList: expected no error, but got %q", err) } for _, room := range l { if strings.ToLower(room.Name) == strings.ToLower(*roomName) { roomId = strconv.Itoa(room.Id) break } } if len(roomId) == 0 { log.Fatalf("No room was found with the name %q", *roomName) } for { time.Sleep(5 * time.Second) hist, err := c.RoomHistory(roomId, "recent", "EST") if err != nil { log.Printf("RoomHistory: Expected no error, but got %q", err) } for _, m := range hist { t, err := m.Time() if err != nil { log.Println(err) continue } if t.After(lastTime) { msg := m.Message if strings.HasPrefix(strings.ToLower(msg), cmdPrefix) { rockGiphy(msg[len(cmdPrefix):], &c) } log.Printf("Updating lastTime to %v", t) lastTime = t } } } }