Catch connection errors.

Not logged in bugfix.
Minor tweaks.

Black for setup
This commit is contained in:
KEriks 2021-07-23 10:12:00 +03:00
parent ade0f9b11a
commit 61df989cb4
4 changed files with 37 additions and 31 deletions

View File

@ -5,6 +5,7 @@ import time
from typing import Any, Dict, List, Mapping, Union from typing import Any, Dict, List, Mapping, Union
from requests import Response, Session from requests import Response, Session
from requests.exceptions import ConnectionError
from requests_toolbelt.utils import dump from requests_toolbelt.utils import dump
from erepublik import constants, utils from erepublik import constants, utils
@ -43,7 +44,11 @@ class SlowRequests(Session):
def request(self, method, url, *args, **kwargs): def request(self, method, url, *args, **kwargs):
self._slow_down_requests() self._slow_down_requests()
self._log_request(url, method, **kwargs) 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) # self._log_response(resp)
return resp return resp

View File

@ -177,9 +177,10 @@ class BaseCitizen(access_points.CitizenAPI):
if html is None: if html is None:
self._get_main() self._get_main()
return return
ugly_js = re.search(r'"promotions":\s*(\[{?.*?}?])', html).group(1) ugly_js_match = re.search(r'"promotions":\s*(\[{?.*?}?])', html)
promos = utils.json.loads(utils.normalize_html_json(ugly_js)) ugly_js = ugly_js_match.group(1) if ugly_js_match else "null"
if self.promos is None: promos = utils.json_loads(utils.normalize_html_json(ugly_js))
if promos is None:
self.promos = {} self.promos = {}
else: else:
self.promos = {k: v for k, v in self.promos.items() if v > self.now} 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() self.send_my_companies_update()
sleep_seconds = (start_time - self.now).total_seconds() sleep_seconds = (start_time - self.now).total_seconds()
self.stop_threads.wait(sleep_seconds if sleep_seconds > 0 else 0) 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") self.report_error("State updater crashed")
def send_state_update(self): def send_state_update(self):

View File

@ -7,12 +7,12 @@ serialize = {major}.{minor}.{patch}.{dev}
{major}.{minor}.{patch} {major}.{minor}.{patch}
[bumpversion:file:setup.py] [bumpversion:file:setup.py]
search = version='{current_version}' search = version="{current_version}"
replace = version='{new_version}' replace = version="{new_version}"
[bumpversion:file:erepublik/__init__.py] [bumpversion:file:erepublik/__init__.py]
search = __version__ = '{current_version}' search = __version__ = "{current_version}"
replace = __version__ = '{new_version}' replace = __version__ = "{new_version}"
[bdist_wheel] [bdist_wheel]
universal = 1 universal = 1

View File

@ -5,17 +5,17 @@
from setuptools import find_packages, setup from setuptools import find_packages, setup
with open('README.rst') as readme_file: with open("README.rst") as readme_file:
readme = readme_file.read() readme = readme_file.read()
with open('HISTORY.rst') as history_file: with open("HISTORY.rst") as history_file:
history = history_file.read() history = history_file.read()
requirements = [ requirements = [
'PySocks==1.7.1', "PySocks==1.7.1",
'pytz==2021.1', "pytz==2021.1",
'requests==2.26.0', "requests==2.26.0",
'requests-toolbelt==0.9.1', "requests-toolbelt==0.9.1",
] ]
setup_requirements = [] setup_requirements = []
@ -26,30 +26,30 @@ test_requirements = [
setup( setup(
author="Eriks Karls", author="Eriks Karls",
author_email='eriks@72.lv', author_email="eriks@72.lv",
classifiers=[ classifiers=[
'Development Status :: 4 - Beta', "Development Status :: 4 - Beta",
'Intended Audience :: Developers', "Intended Audience :: Developers",
'License :: OSI Approved :: MIT License', "License :: OSI Approved :: MIT License",
'Natural Language :: English', "Natural Language :: English",
'Programming Language :: Python :: 3', "Programming Language :: Python :: 3",
'Programming Language :: Python :: 3.8', "Programming Language :: Python :: 3.8",
'Programming Language :: Python :: 3.9', "Programming Language :: Python :: 3.9",
], ],
description="Python package for automated eRepublik playing", description="Python package for automated eRepublik playing",
entry_points={}, entry_points={},
install_requires=requirements, install_requires=requirements,
license="MIT license", license="MIT license",
long_description=readme + '\n\n' + history, long_description=readme + "\n\n" + history,
include_package_data=True, include_package_data=True,
keywords='erepublik', keywords="erepublik",
name='eRepublik', name="eRepublik",
packages=find_packages(include=['erepublik']), packages=find_packages(include=["erepublik"]),
python_requires='>=3.8, <4', python_requires=">=3.8, <4",
setup_requires=setup_requirements, setup_requires=setup_requirements,
test_suite='tests', test_suite="tests",
tests_require=test_requirements, tests_require=test_requirements,
url='https://github.com/eeriks/erepublik/', url="https://github.com/eeriks/erepublik/",
version='0.25.1.2', version="0.25.1.2",
zip_safe=False, zip_safe=False,
) )