@@ -141,8 +141,8 @@ async def _request(self, method, url, headers=None, **kwargs):
141
141
142
142
async with Request (headers = headers , cookies = WebAPI .cookies ) as request :
143
143
async with request .request (method , url , ** kwargs ) as response :
144
- result = await response .json ()
145
144
if not response .ok :
145
+ result = await response .text ()
146
146
logger .error ("Web API Error: {}, {}" , response .status , result )
147
147
if response .status == 401 :
148
148
raise NazurinError (
@@ -151,19 +151,27 @@ async def _request(self, method, url, headers=None, **kwargs):
151
151
)
152
152
if response .status == 429 :
153
153
headers = response .headers
154
- logger .error (
155
- "Rate limited, limit: {}, reset: {}" ,
156
- headers [Headers .RATE_LIMIT_LIMIT ],
157
- headers [Headers .RATE_LIMIT_RESET ],
158
- )
159
- reset_time = datetime .fromtimestamp (
160
- headers [Headers .RATE_LIMIT_RESET ]
161
- )
154
+ detail = ""
155
+ if (
156
+ Headers .RATE_LIMIT_LIMIT in headers
157
+ and Headers .RATE_LIMIT_RESET in headers
158
+ ):
159
+ rate_limit = int (headers [Headers .RATE_LIMIT_LIMIT ])
160
+ reset_time = int (headers [Headers .RATE_LIMIT_RESET ])
161
+ logger .error (
162
+ "Rate limited, limit: {}, reset: {}" ,
163
+ rate_limit ,
164
+ reset_time ,
165
+ )
166
+ reset_time = datetime .fromtimestamp (reset_time )
167
+ detail = (
168
+ f"Rate limit: { rate_limit } , Reset time: { reset_time } "
169
+ )
162
170
raise NazurinError (
163
- "Hit API rate limit, please try again later. "
164
- f"Reset time: { reset_time } "
171
+ "Hit API rate limit, please try again later. " + detail
165
172
)
166
173
raise NazurinError (f"Twitter web API error: { result } " )
174
+ result = await response .json ()
167
175
self ._update_cookies (response .cookies )
168
176
return result
169
177
0 commit comments