Compare commits
15 Commits
Author | SHA1 | Date | |
---|---|---|---|
38f0335354 | |||
889435b94e | |||
bb16c27674 | |||
963d7ca11a | |||
36c7fefdf7 | |||
d9fa30b06e | |||
b53dc447f4 | |||
233d8d83f8 | |||
ec62d90aa2 | |||
0c433a56da | |||
ad24338f4d | |||
6f4bc65d1b | |||
cc09ba7ee7 | |||
9e1166a460 | |||
fb0042c00d |
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
__author__ = """Eriks Karls"""
|
__author__ = """Eriks Karls"""
|
||||||
__email__ = 'eriks@72.lv'
|
__email__ = 'eriks@72.lv'
|
||||||
__version__ = '0.21.5.1'
|
__version__ = '0.21.5.8'
|
||||||
|
|
||||||
from erepublik import classes, utils, constants
|
from erepublik import classes, utils, constants
|
||||||
from erepublik.citizen import Citizen
|
from erepublik.citizen import Citizen
|
||||||
|
@ -164,10 +164,10 @@ 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}/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}/wheeloffortune-build", data={'_token': self.token})
|
return self.post(f"{self.url}/main/wheeloffortune-build", data={'_token': self.token})
|
||||||
|
|
||||||
|
|
||||||
class ErepublikArticleAPI(CitizenBaseAPI):
|
class ErepublikArticleAPI(CitizenBaseAPI):
|
||||||
|
@ -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):
|
||||||
@ -940,8 +938,10 @@ class CitizenEconomy(CitizenTravel):
|
|||||||
|
|
||||||
global_cheapest = self.get_market_offers("house", q)[f"q{q}"]
|
global_cheapest = self.get_market_offers("house", q)[f"q{q}"]
|
||||||
if global_cheapest.price + 200 < local_cheapest.price:
|
if global_cheapest.price + 200 < local_cheapest.price:
|
||||||
self._travel(global_cheapest.country)
|
if self.travel_to_country(global_cheapest.country):
|
||||||
buy = self.buy_from_market(global_cheapest.offer_id, 1)
|
buy = self.buy_from_market(global_cheapest.offer_id, 1)
|
||||||
|
else:
|
||||||
|
buy = {'error': True, 'message': 'Unable to travel!'}
|
||||||
else:
|
else:
|
||||||
buy = self.buy_from_market(local_cheapest.offer_id, 1)
|
buy = self.buy_from_market(local_cheapest.offer_id, 1)
|
||||||
if buy["error"]:
|
if buy["error"]:
|
||||||
@ -1389,6 +1389,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 +1688,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 +2003,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)
|
||||||
|
@ -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):
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
[bumpversion]
|
[bumpversion]
|
||||||
current_version = 0.21.5.1
|
current_version = 0.21.5.8
|
||||||
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+)?
|
||||||
|
13
setup.py
13
setup.py
@ -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.1',
|
version='0.21.5.8',
|
||||||
zip_safe=False,
|
zip_safe=False,
|
||||||
)
|
)
|
||||||
|
Reference in New Issue
Block a user