Skip to content
This repository was archived by the owner on Oct 4, 2023. It is now read-only.

Commit 6635a69

Browse files
committed
Adding rate limit information to resolve #17
1 parent 2c5d160 commit 6635a69

2 files changed

Lines changed: 25 additions & 0 deletions

File tree

README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,18 @@ except ImgurClientError as e
102102

103103
* ImgurClientRateLimitError - Rate limit error
104104

105+
### Credits
106+
107+
To view client and user credit information, use the `credits` attribute of `ImgurClient`.
108+
`credits` holds a dictionary with the following keys:
109+
* UserLimit
110+
* UserRemaining
111+
* UserReset
112+
* ClientLimit
113+
* ClientRemaining
114+
115+
For more information about rate-limiting, please see the note in our [docs](http://api.imgur.com/#limits)!
116+
105117
## ImgurClient Functions
106118

107119
### Account

imgurpython/client.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,12 +80,17 @@ def __init__(self, client_id, client_secret, access_token=None, refresh_token=No
8080
if refresh_token is not None:
8181
self.auth = AuthWrapper(access_token, refresh_token, client_id, client_secret)
8282

83+
self.credits = self.get_credits()
84+
8385
def set_user_auth(self, access_token, refresh_token):
8486
self.auth = AuthWrapper(access_token, refresh_token, self.client_id, self.client_secret)
8587

8688
def get_client_id(self):
8789
return self.client_id
8890

91+
def get_credits(self):
92+
return self.make_request('GET', 'credits', None, True)
93+
8994
def get_auth_url(self, response_type='pin'):
9095
return '%soauth2/authorize?client_id=%s&response_type=%s' % (API_URL, self.client_id, response_type)
9196

@@ -126,6 +131,14 @@ def make_request(self, method, route, data=None, force_anon=False):
126131
else:
127132
response = method_to_call(url, headers=header, data=data)
128133

134+
self.credits = {
135+
'UserLimit': response.headers.get('X-RateLimit-UserLimit'),
136+
'UserRemaining': response.headers.get('X-RateLimit-UserRemaining'),
137+
'UserReset': response.headers.get('X-RateLimit-UserReset'),
138+
'ClientLimit': response.headers.get('X-RateLimit-ClientLimit'),
139+
'ClientRemaining': response.headers.get('X-RateLimit-ClientRemaining')
140+
}
141+
129142
# Rate-limit check
130143
if response.status_code == 429:
131144
raise ImgurClientRateLimitError()

0 commit comments

Comments
 (0)