package bothandlers /** * DEPRECATED * this was used to fetch a giphy image * no longer used */ import ( "io/ioutil" "math/rand" "net/http" "strings" "time" "github.com/bwmarrin/discordgo" "github.com/tidwall/gjson" ) const ( gifPrefix string = "!gif " userAgent string = "go-discord-bot" giphyURL string = "http://api.giphy.com/v1/gifs/search?&api_key=dc6zaTOxFJmzC&limit=10&q=" ) // GifHandler - handler for giphy api func GifHandler(s *discordgo.Session, m *discordgo.MessageCreate) { // check if valid command if strings.HasPrefix(m.Content, gifPrefix) { searchText := strings.TrimPrefix(m.Content, gifPrefix) gifLink := getGiphy(searchText) if gifLink == "null" { gifLink = "No gif found." } s.ChannelMessageSend(m.ChannelID, gifLink) } } // send http request to reddit func getGiphy(searchTerm string) string { rand.Seed(time.Now().UnixNano()) client := &http.Client{} req, err := http.NewRequest("GET", giphyURL+searchTerm, nil) response, err := client.Do(req) if err != nil { return err.Error() } defer response.Body.Close() body, err := ioutil.ReadAll(response.Body) if err != nil { return err.Error() } data := gjson.Get(string(body), "data").Array() if len(data) < 1 { return "null" } return data[rand.Intn(len(data))].Get("images.fixed_height.url").String() }