Compare commits

...

3 Commits

5 changed files with 24 additions and 16 deletions

View File

@ -4,7 +4,7 @@
__author__ = """Eriks Karls"""
__email__ = 'eriks@72.lv'
__version__ = '0.23.4.12'
__version__ = '0.23.4.13'
from erepublik import classes, constants, utils
from erepublik.citizen import Citizen

View File

@ -12,6 +12,7 @@ from typing import Any, Dict, List, NoReturn, Optional, Set, Tuple, Union
from requests import HTTPError, RequestException, Response
from . import access_points, classes, constants, types, utils
from .access_points import SlowRequests
from .classes import OfferItem
@ -508,7 +509,7 @@ class BaseCitizen(access_points.CitizenAPI):
self.write_log(f"Resumed as: {self.name}")
if re.search('<div id="accountSecurity" class="it-hurts-when-ip">', resp.text):
self.restricted_ip = True
self.report_error("eRepublik has blacklisted IP. Limited functionality!", True)
# self.report_error("eRepublik has blacklisted IP. Limited functionality!", True)
self.logged_in = True
self.get_csrf_token()
@ -732,7 +733,7 @@ class BaseCitizen(access_points.CitizenAPI):
self.get_csrf_token()
if re.search('<div id="accountSecurity" class="it-hurts-when-ip">', self.r.text):
self.restricted_ip = True
self.report_error("eRepublik has blacklisted IP. Limited functionality!", True)
# self.report_error("eRepublik has blacklisted IP. Limited functionality!", True)
self.logged_in = True
@ -747,6 +748,9 @@ class BaseCitizen(access_points.CitizenAPI):
if response.status_code >= 400:
self.r = response
if response.status_code >= 500:
if self.restricted_ip:
self._req.cookies.clear()
return True
self.write_log("eRepublik servers are having internal troubles. Sleeping for 5 minutes")
self.sleep(5 * 60)
else:
@ -2705,13 +2709,14 @@ class _Citizen(CitizenAnniversary, CitizenCompanies, CitizenLeaderBoard,
def state_update_repeater(self):
try:
start_time = self.now.replace(second=0, microsecond=0)
start_time = self.now.replace(minute=(self.now.minute // 10) * 10, second=0, microsecond=0)
if not self.restricted_ip:
if start_time.minute <= 30:
start_time = start_time.replace(minute=30)
else:
start_time = utils.good_timedelta(start_time.replace(minute=0), timedelta(hours=1))
while not self.stop_threads.is_set():
start_time = utils.good_timedelta(start_time, timedelta(minutes=30))
start_time = utils.good_timedelta(start_time, timedelta(minutes=10 if self.restricted_ip else 30))
self.update_citizen_info()
self.update_weekly_challenge()
self.send_state_update()

View File

@ -3,7 +3,7 @@ import hashlib
import threading
import weakref
from decimal import Decimal
from typing import Any, Dict, Generator, Iterable, List, NamedTuple, NoReturn, Tuple, Union
from typing import Any, Dict, Generator, Iterable, List, NamedTuple, NoReturn, Union
from requests import Response, Session, post
@ -670,11 +670,14 @@ class Reporter:
except: # noqa
return []
def fetch_tasks(self) -> List[Union[str, Tuple[Any]]]:
def fetch_tasks(self) -> List[Dict[str, Any]]:
try:
task_response = self._req.get(f'{self.url}/api/v1/command',
params=dict(citizen=self.citizen_id, key=self.key))
return task_response.json().get('task_collection')
task_response = self._req.post(
f'{self.url}/api/v1/command', data=dict(citizen=self.citizen_id, key=self.key)).json()
if task_response.get('status'):
return task_response.get('data')
else:
return []
except: # noqa
return []

View File

@ -1,5 +1,5 @@
[bumpversion]
current_version = 0.23.4.12
current_version = 0.23.4.13
commit = True
tag = True
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)\.?(?P<dev>\d+)?

View File

@ -50,6 +50,6 @@ setup(
test_suite='tests',
tests_require=test_requirements,
url='https://github.com/eeriks/erepublik/',
version='0.23.4.12',
version='0.23.4.13',
zip_safe=False,
)