package api import ( "encoding/json" "fmt" "io/ioutil" "net/http" "github.com/lyx0/nourybot/pkg/utils" log "github.com/sirupsen/logrus" ) type XkcdResponse struct { Num int `json:"num"` SafeTitle string `json:"safe_title"` Img string `json:"img"` } // RandomXkcd returns a link to a random Xkcd comic. func RandomXkcd() string { comicNum := fmt.Sprint(utils.GenerateRandomNumber(2468)) response, err := http.Get(fmt.Sprint("http://xkcd.com/" + comicNum + "/info.0.json")) if err != nil { log.Error(err) } responseData, err := ioutil.ReadAll(response.Body) if err != nil { log.Error(err) } var responseObject XkcdResponse json.Unmarshal(responseData, &responseObject) reply := fmt.Sprint("Random Xkcd #", responseObject.Num, " Title: ", responseObject.SafeTitle, " ", responseObject.Img) return reply }