def request_url_json(self, url, limit=True):
# simple token bucket limiting
current_time = time.time()
delta_time = current_time - self.last_time
self.last_time = current_time
self.bucket += delta_time * (self.limit_messages / self.limit_time)
if self.bucket > self.limit_messages:
self.bucket = self.limit_messages
if self.bucket < 1:
raise OverwatchApiRateExceededException()
self.bucket -= 1
with aiohttp.Timeout(self.timeout):
response = yield from self.session.get(url)
if response.status != 200:
raise OverwatchApiHttpException(response.status)
return (yield from response.json())
评论列表
文章目录