mirror-nourybot/pkg/commands/color.go

53 lines
1.1 KiB
Go

package commands
import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
"github.com/lyx0/nourybot/cmd/bot"
log "github.com/sirupsen/logrus"
)
// https://api.ivr.fi
type colorApiResponse struct {
Id string `json:"id"`
DisplayName string `json:"displayName"`
ChatColor string `json:"chatColor"`
Error string `json:"error"`
}
// Userid returns the userID of a given user
func Color(username, target string, nb *bot.Bot) {
baseUrl := "https://api.ivr.fi/twitch/resolve"
resp, err := http.Get(fmt.Sprintf("%s/%s", baseUrl, username))
if err != nil {
log.Error(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Error(err)
}
var responseObject colorApiResponse
json.Unmarshal(body, &responseObject)
// time string format 2011-05-19T00:28:28.310449Z
// discard everything after T
reply := fmt.Sprintf("%s color is %s",
responseObject.DisplayName,
responseObject.ChatColor,
)
// User not found
if responseObject.Error != "" {
nb.Send(target, "Something went wrong... FeelsBadMan")
}
nb.Send(target, reply)
}