mirror of
https://github.com/lyx0/nourybot.git
synced 2024-11-13 19:49:55 +01:00
53 lines
1.1 KiB
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)
|
|
}
|