Catch connection errors.
Not logged in bugfix. Minor tweaks. Black for setup
This commit is contained in:
@ -5,6 +5,7 @@ import time
|
||||
from typing import Any, Dict, List, Mapping, Union
|
||||
|
||||
from requests import Response, Session
|
||||
from requests.exceptions import ConnectionError
|
||||
from requests_toolbelt.utils import dump
|
||||
|
||||
from erepublik import constants, utils
|
||||
@ -43,7 +44,11 @@ class SlowRequests(Session):
|
||||
def request(self, method, url, *args, **kwargs):
|
||||
self._slow_down_requests()
|
||||
self._log_request(url, method, **kwargs)
|
||||
resp = super().request(method, url, *args, **kwargs)
|
||||
try:
|
||||
resp = super().request(method, url, *args, **kwargs)
|
||||
except ConnectionError:
|
||||
time.sleep(1)
|
||||
return self.request(method, url, *args, **kwargs)
|
||||
# self._log_response(resp)
|
||||
return resp
|
||||
|
||||
|
@ -177,9 +177,10 @@ class BaseCitizen(access_points.CitizenAPI):
|
||||
if html is None:
|
||||
self._get_main()
|
||||
return
|
||||
ugly_js = re.search(r'"promotions":\s*(\[{?.*?}?])', html).group(1)
|
||||
promos = utils.json.loads(utils.normalize_html_json(ugly_js))
|
||||
if self.promos is None:
|
||||
ugly_js_match = re.search(r'"promotions":\s*(\[{?.*?}?])', html)
|
||||
ugly_js = ugly_js_match.group(1) if ugly_js_match else "null"
|
||||
promos = utils.json_loads(utils.normalize_html_json(ugly_js))
|
||||
if promos is None:
|
||||
self.promos = {}
|
||||
else:
|
||||
self.promos = {k: v for k, v in self.promos.items() if v > self.now}
|
||||
@ -2920,7 +2921,7 @@ class _Citizen(
|
||||
self.send_my_companies_update()
|
||||
sleep_seconds = (start_time - self.now).total_seconds()
|
||||
self.stop_threads.wait(sleep_seconds if sleep_seconds > 0 else 0)
|
||||
except: # noqa
|
||||
except Exception as e: # noqa
|
||||
self.report_error("State updater crashed")
|
||||
|
||||
def send_state_update(self):
|
||||
|
Reference in New Issue
Block a user