Ejemplo n.º 1
0
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
			}
		}
	}
}