Citizen get() and post() signature update, check if server isn't compaining about request flooding
This commit is contained in:
parent
24c755d414
commit
a7dd528597
@ -164,6 +164,13 @@ class Citizen(CitizenAPI):
|
|||||||
self.logged_in = True
|
self.logged_in = True
|
||||||
|
|
||||||
def _errors_in_response(self, response: Response):
|
def _errors_in_response(self, response: Response):
|
||||||
|
try:
|
||||||
|
j = response.json()
|
||||||
|
if j['error'] and j["message"] == 'Too many requests':
|
||||||
|
self.write_log("Made too many requests! Sleeping for 30 seconds.")
|
||||||
|
self.sleep(30)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
if response.status_code >= 400:
|
if response.status_code >= 400:
|
||||||
self.r = response
|
self.r = response
|
||||||
if response.status_code >= 500:
|
if response.status_code >= 500:
|
||||||
@ -174,7 +181,7 @@ class Citizen(CitizenAPI):
|
|||||||
return bool(re.search(r'body id="error"|Internal Server Error|'
|
return bool(re.search(r'body id="error"|Internal Server Error|'
|
||||||
r'CSRF attack detected|meta http-equiv="refresh"|not_authenticated', response.text))
|
r'CSRF attack detected|meta http-equiv="refresh"|not_authenticated', response.text))
|
||||||
|
|
||||||
def get(self, url: str, *args, **kwargs) -> Response:
|
def get(self, url: str, **kwargs) -> Response:
|
||||||
if (self.now - self._req.last_time).seconds >= 15 * 60:
|
if (self.now - self._req.last_time).seconds >= 15 * 60:
|
||||||
self.get_csrf_token()
|
self.get_csrf_token()
|
||||||
if "params" in kwargs:
|
if "params" in kwargs:
|
||||||
@ -188,7 +195,7 @@ class Citizen(CitizenAPI):
|
|||||||
except RequestException as e:
|
except RequestException as e:
|
||||||
self.write_log("Network error while issuing GET request", e)
|
self.write_log("Network error while issuing GET request", e)
|
||||||
self.sleep(60)
|
self.sleep(60)
|
||||||
return self.get(url, *args, **kwargs)
|
return self.get(url, **kwargs)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
self.update_citizen_info(html=response.text)
|
self.update_citizen_info(html=response.text)
|
||||||
@ -221,7 +228,7 @@ class Citizen(CitizenAPI):
|
|||||||
except RequestException as e:
|
except RequestException as e:
|
||||||
self.write_log("Network error while issuing POST request", e)
|
self.write_log("Network error while issuing POST request", e)
|
||||||
self.sleep(60)
|
self.sleep(60)
|
||||||
return self.post(url, data, json, **kwargs)
|
return self.post(url, data=data, json=json, **kwargs)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
resp_data = response.json()
|
resp_data = response.json()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user