rate_limit_status.go 853 B

123456789101112131415161718192021222324252627282930
  1. package anaconda
  2. import (
  3. "net/url"
  4. "strings"
  5. )
  6. type RateLimitStatusResponse struct {
  7. RateLimitContext RateLimitContext `json:"rate_limit_context"`
  8. Resources map[string]map[string]BaseResource `json:"resources"`
  9. }
  10. type RateLimitContext struct {
  11. AccessToken string `json:"access_token"`
  12. }
  13. type BaseResource struct {
  14. Limit int `json:"limit"`
  15. Remaining int `json:"remaining"`
  16. Reset int `json:"reset"`
  17. }
  18. func (a TwitterApi) GetRateLimits(r []string) (rateLimitStatusResponse RateLimitStatusResponse, err error) {
  19. resources := strings.Join(r, ",")
  20. v := url.Values{}
  21. v.Set("resources", resources)
  22. response_ch := make(chan response)
  23. a.queryQueue <- query{a.baseUrl + "/application/rate_limit_status.json", v, &rateLimitStatusResponse, _GET, response_ch}
  24. return rateLimitStatusResponse, (<-response_ch).err
  25. }