diff -r eb83fd052cc5 -r 0c581e0108da favourites.go --- a/favourites.go Sat Apr 29 10:51:45 2017 +0200 +++ b/favourites.go Sat Apr 29 12:16:16 2017 +0200 @@ -13,9 +13,22 @@ // GetFavourites returns the list of the user's favourites func (mc *Client) GetFavourites(lopt *LimitParams) ([]Status, error) { var faves []Status - err := mc.apiCall("favourites", rest.Get, nil, lopt, &faves) + var links apiLinks + err := mc.apiCall("favourites", rest.Get, nil, lopt, &links, &faves) if err != nil { return nil, err } + if lopt != nil { // Fetch more pages to reach our limit + var faveSlice []Status + for lopt.Limit > len(faves) && links.next != nil { + newlopt := links.next + links = apiLinks{} + if err := mc.apiCall("favourites", rest.Get, nil, newlopt, &links, &faveSlice); err != nil { + return nil, err + } + faves = append(faves, faveSlice...) + faveSlice = faveSlice[:0] // Clear struct + } + } return faves, nil }