Compare commits

...

11 Commits

Author SHA1 Message Date
bb16c27674 Bump version: 0.21.5.6 → 0.21.5.7 2020-10-06 12:35:19 +03:00
963d7ca11a bugfix 2020-10-06 12:35:14 +03:00
36c7fefdf7 Bump version: 0.21.5.5 → 0.21.5.6 2020-09-30 08:40:14 +03:00
d9fa30b06e bugfix in default weapon switch 2020-09-30 08:35:35 +03:00
b53dc447f4 switch to deploy 2020-09-30 08:13:36 +03:00
233d8d83f8 Bump version: 0.21.5.4 → 0.21.5.5 2020-09-29 18:02:52 +03:00
ec62d90aa2 wheeloffortune bugfix 2020-09-29 18:02:52 +03:00
0c433a56da Bump version: 0.21.5.3 → 0.21.5.4 2020-09-29 17:38:44 +03:00
ad24338f4d wheeloffortune bugfix 2020-09-29 17:38:26 +03:00
6f4bc65d1b Bump version: 0.21.5.2 → 0.21.5.3 2020-09-29 17:21:00 +03:00
cc09ba7ee7 wheeloffortune argument bugfix 2020-09-29 17:20:53 +03:00
6 changed files with 37 additions and 26 deletions

View File

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

View File

@ -164,7 +164,7 @@ class ErepublikAnniversaryAPI(CitizenBaseAPI):
return self.post(f"{self.url}/main/map-rewards-claim", data=data) return self.post(f"{self.url}/main/map-rewards-claim", data=data)
def _post_main_wheel_of_fortune_spin(self, cost) -> Response: def _post_main_wheel_of_fortune_spin(self, cost) -> Response:
return self.post(f"{self.url}/main/wheeloffortune-spin", data={'_token': self.token, "cost": cost}) return self.post(f"{self.url}/main/wheeloffortune-spin", data={'_token': self.token, "_currentCost": cost})
def _post_main_wheel_of_fortune_build(self) -> Response: def _post_main_wheel_of_fortune_build(self) -> Response:
return self.post(f"{self.url}/main/wheeloffortune-build", data={'_token': self.token}) return self.post(f"{self.url}/main/wheeloffortune-build", data={'_token': self.token})

View File

@ -6,7 +6,7 @@ from decimal import Decimal
from itertools import product from itertools import product
from threading import Event from threading import Event
from time import sleep from time import sleep
from typing import Any, Callable, Dict, List, NoReturn, Optional, Set, Tuple, Union from typing import Any, Dict, List, NoReturn, Optional, Set, Tuple, Union
from requests import HTTPError, RequestException, Response from requests import HTTPError, RequestException, Response
@ -683,9 +683,7 @@ class CitizenAnniversary(BaseCitizen):
_write_spin_data(current_cost, r.get('account'), _write_spin_data(current_cost, r.get('account'),
base.get('prizes').get('prizes').get(str(r.get('result'))).get('tooltip')) base.get('prizes').get('prizes').get(str(r.get('result'))).get('tooltip'))
else: else:
is_cost: Callable[[], bool] = lambda: (max_cost != current_cost if max_cost else True) while max_cost >= current_cost if max_cost else spin_count >= current_count if spin_count else False:
is_count: Callable[[], bool] = lambda: (spin_count != current_count if spin_count else True)
while is_cost() or is_count():
r = self._spin_wheel_of_loosing(current_cost) r = self._spin_wheel_of_loosing(current_cost)
current_count += 1 current_count += 1
current_cost = r.get('cost') current_cost = r.get('cost')
@ -694,8 +692,8 @@ class CitizenAnniversary(BaseCitizen):
def _spin_wheel_of_loosing(self, current_cost: int) -> Dict[str, Any]: def _spin_wheel_of_loosing(self, current_cost: int) -> Dict[str, Any]:
r = self._post_main_wheel_of_fortune_spin(current_cost).json() r = self._post_main_wheel_of_fortune_spin(current_cost).json()
self.details.cc = r.get('account') self.details.cc = float(Decimal(r.get('account')))
return r.get('result') return r
class CitizenTravel(BaseCitizen): class CitizenTravel(BaseCitizen):
@ -1389,6 +1387,7 @@ class CitizenMilitary(CitizenTravel):
try: try:
if weapon['weaponQuantity'] > 30 and weapon['weaponInfluence'] > weapon_damage: if weapon['weaponQuantity'] > 30 and weapon['weaponInfluence'] > weapon_damage:
weapon_quality = int(weapon['weaponId']) weapon_quality = int(weapon['weaponId'])
weapon_damage = weapon['weaponInfluence']
except ValueError: except ValueError:
pass pass
return self.change_weapon(battle, weapon_quality, division) return self.change_weapon(battle, weapon_quality, division)
@ -1687,14 +1686,17 @@ class CitizenMilitary(CitizenTravel):
damage = 0 damage = 0
err = False err = False
if r_json.get("error"): if r_json.get("error"):
if r_json.get("message") == "SHOOT_LOCKOUT" or r_json.get("message") == "ZONE_INACTIVE": if r_json.get("message") == "SHOOT_LOCKOUT":
pass pass
elif r_json.get("message") == "NOT_ENOUGH_WEAPONS": elif r_json.get("message") == "NOT_ENOUGH_WEAPONS":
self.set_default_weapon(battle, division) self.set_default_weapon(battle, division)
elif r_json.get("message") == "Cannot activate a zone with a non-native division": elif r_json.get("message") == "Cannot activate a zone with a non-native division":
self.write_log("Wrong division!!") self.write_log("Wrong division!!")
return 0, 10, 0 return 0, 10, 0
elif r_json.get("message") == "FIGHT_DISABLED": elif r_json.get("message") == "ZONE_INACTIVE":
self.write_log("Wrong division!!")
return 0, 10, 0
elif r_json.get("message") in ["FIGHT_DISABLED", "DEPLOYMENT_MODE"]:
self._post_main_profile_update('options', self._post_main_profile_update('options',
params='{"optionName":"enable_web_deploy","optionValue":"off"}') params='{"optionName":"enable_web_deploy","optionValue":"off"}')
self.set_default_weapon(battle, division) self.set_default_weapon(battle, division)
@ -1999,7 +2001,8 @@ class CitizenPolitics(BaseCitizen):
self._report_action('POLITIC_PARTY_PRESIDENT', 'Applied for party president elections') self._report_action('POLITIC_PARTY_PRESIDENT', 'Applied for party president elections')
return self._get_candidate_party(self.politics.party_slug) return self._get_candidate_party(self.politics.party_slug)
def get_country_president_election_result(self, country: constants.Country, year: int, month: int) -> Dict[str, int]: def get_country_president_election_result(self, country: constants.Country, year: int, month: int) -> Dict[
str, int]:
timestamp = int(constants.erep_tz.localize(datetime(year, month, 5)).timestamp()) timestamp = int(constants.erep_tz.localize(datetime(year, month, 5)).timestamp())
resp = self._get_presidential_elections(country.id, timestamp) resp = self._get_presidential_elections(country.id, timestamp)
candidates = re.findall(r'class="candidate_info">(.*?)</li>', resp.text, re.S | re.M) candidates = re.findall(r'class="candidate_info">(.*?)</li>', resp.text, re.S | re.M)

View File

@ -451,24 +451,25 @@ class Energy:
class Details: class Details:
xp = 0 xp: int = 0
cc = 0 cc: float = 0
pp = 0 pp: int = 0
pin = None pin: str = None
gold = 0 gold: float = 0
next_pp: List[int] = None next_pp: List[int] = None
citizen_id = 0 citizen_id: int = 0
citizenship: constants.Country citizenship: constants.Country
current_region = 0 current_region: int = 0
current_country: constants.Country current_country: constants.Country
residence_region = 0 residence_region: int = 0
residence_country: constants.Country residence_country: constants.Country
daily_task_done = False daily_task_done: bool = False
daily_task_reward = False daily_task_reward: bool = False
mayhem_skills = {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, } mayhem_skills: Dict[int, int]
def __init__(self): def __init__(self):
self.next_pp = [] self.next_pp = []
self.mayhem_skills = {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0}
@property @property
def xp_till_level_up(self): def xp_till_level_up(self):

View File

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

View File

@ -11,11 +11,18 @@ with open('README.rst') as readme_file:
with open('HISTORY.rst') as history_file: with open('HISTORY.rst') as history_file:
history = history_file.read() history = history_file.read()
requirements = ['pytz==2020.1', 'requests==2.24.0', 'PySocks==1.7.1'] requirements = [
'pytz==2020.1',
'requests==2.24.0',
'PySocks==1.7.1'
]
setup_requirements = [] setup_requirements = []
test_requirements = [] test_requirements = [
"pytest==6.1.0",
"responses==0.12.0"
]
setup( setup(
author="Eriks Karls", author="Eriks Karls",
@ -43,6 +50,6 @@ setup(
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.21.5.2', version='0.21.5.7',
zip_safe=False, zip_safe=False,
) )