diff --git a/broadcasts.go b/broadcasts.go index f455074..ff0bffe 100644 --- a/broadcasts.go +++ b/broadcasts.go @@ -241,6 +241,9 @@ func (br *Broadcast) GetLiveChaining() ([]*Broadcast, error) { if err != nil { return nil, err } + for _, br := range resp.Broadcasts { + br.setValues(insta) + } return resp.Broadcasts, nil } diff --git a/const.go b/const.go index 22ac987..26adffd 100644 --- a/const.go +++ b/const.go @@ -280,6 +280,7 @@ var ( ErrInvalidTab = errors.New("Invalid tab, please select top or recent") ErrNoMore = errors.New("No more posts availible, page end has been reached") ErrNotHighlight = errors.New("Unable to sync, Reel is not of type highlight") + ErrMediaDeleted = errors.New("Sorry, this media has been deleted") // Misc ErrByteIndexNotFound = errors.New("Failed to index byte slice, delim not found") diff --git a/request.go b/request.go index b678248..622dc82 100644 --- a/request.go +++ b/request.go @@ -221,19 +221,14 @@ func (insta *Instagram) sendRequest(o *reqOptions) (body []byte, h http.Header, return nil, nil, err } defer resp.Body.Close() - if resp.StatusCode != http.StatusOK { - return nil, nil, fmt.Errorf( - "Status: '%s', Status Code: '%d', Err: '%v'", - resp.Status, - resp.StatusCode, - err, - ) - } body, err = ioutil.ReadAll(resp.Body) if err == nil { err = isError(resp.StatusCode, body, resp.Status, o.Endpoint) } + if err != nil { + return nil, nil, err + } insta.extractHeaders(resp.Header) // Decode gzip encoded responses @@ -300,11 +295,12 @@ func isError(code int, body []byte, status, endpoint string) (err error) { ierr := Error400{Endpoint: endpoint} err = json.Unmarshal(body, &ierr) if err == nil { - if ierr.Message == "challenge_required" { + switch ierr.Message { + case "Sorry, this media has been deleted": + return ErrMediaDeleted + case "challenge_required": return ierr.ChallengeError - } - - if err == nil { + default: return ierr } }