github.com/status-im/status-go@v1.1.0/protocol/discord/assets.go (about) 1 package discord 2 3 import ( 4 "io/ioutil" 5 "net/http" 6 "time" 7 8 "github.com/ethereum/go-ethereum/log" 9 "github.com/status-im/status-go/images" 10 ) 11 12 func DownloadAvatarAsset(url string) ([]byte, error) { 13 imgs, err := images.GenerateIdentityImagesFromURL(url) 14 if err != nil { 15 return nil, err 16 } 17 payload := imgs[0].Payload 18 return payload, nil 19 } 20 21 func DownloadAsset(url string) ([]byte, string, error) { 22 client := http.Client{Timeout: time.Minute} 23 res, err := client.Get(url) 24 if err != nil { 25 return nil, "", err 26 } 27 defer func() { 28 if err := res.Body.Close(); err != nil { 29 log.Error("failed to close message asset http request body", "err", err) 30 } 31 }() 32 33 contentType := res.Header.Get("Content-Type") 34 bodyBytes, err := ioutil.ReadAll(res.Body) 35 return bodyBytes, contentType, err 36 }