Sorted inheritance

This commit is contained in:
Eriks Karls 2020-02-26 18:42:42 +02:00
parent 8dcebdecd2
commit 70e78023eb
2 changed files with 33 additions and 33 deletions

View File

@ -5,7 +5,7 @@
__author__ = """Eriks Karls""" __author__ = """Eriks Karls"""
__email__ = 'eriks@72.lv' __email__ = 'eriks@72.lv'
__version__ = '0.20.0' __version__ = '0.20.0'
__commit_id__ = "77bcfb3" __commit_id__ = "8dcebde"
from erepublik import classes, utils from erepublik import classes, utils
from erepublik.citizen import Citizen from erepublik.citizen import Citizen

View File

@ -612,6 +612,24 @@ class BaseCitizen(CitizenAPI):
return "" return ""
class CitizenAnniversary(BaseCitizen):
def collect_anniversary_reward(self) -> Response:
return self._post_main_collect_anniversary_reward()
def get_anniversary_quest_data(self):
return self._get_anniversary_quest_data().json()
def start_unlocking_map_quest_node(self, node_id: int):
return self._post_map_rewards_unlock(node_id)
def collect_map_quest_node(self, node_id: int):
return self._post_map_rewards_claim(node_id)
def speedup_map_quest_node(self, node_id: int):
node = self.get_anniversary_quest_data().get('cities', {}).get(str(node_id), {})
return self._post_map_rewards_speedup(node_id, node.get("skipCost", 0))
class CitizenTravel(BaseCitizen): class CitizenTravel(BaseCitizen):
def _update_citizen_location(self, country_id: int, region_id: int): def _update_citizen_location(self, country_id: int, region_id: int):
self.details.current_region = region_id self.details.current_region = region_id
@ -824,23 +842,6 @@ class CitizenTasks(BaseCitizen):
self.ot_points = ot.get("points", 0) self.ot_points = ot.get("points", 0)
class CitizenPolitics(BaseCitizen):
def get_country_parties(self, country_id: int = None) -> dict:
if country_id is None:
country_id = self.details.citizenship
r = self._get_main_rankings_parties(country_id)
ret = {}
for name, id_ in re.findall(r'<a class="dotted" title="([^"]+)" href="/en/party/[\w\d-]+-(\d+)/1">', r.text):
ret.update({int(id_): name})
return ret
def candidate_for_congress(self, presentation: str = "") -> Response:
return self._post_candidate_for_congress(presentation)
def candidate_for_party_presidency(self) -> Response:
return self._get_candidate_party(self.politics.party_slug)
class CitizenEconomy(CitizenTravel): class CitizenEconomy(CitizenTravel):
food: Dict[str, int] = {"q1": 0, "q2": 0, "q3": 0, "q4": 0, "q5": 0, "q6": 0, "q7": 0, "total": 0} food: Dict[str, int] = {"q1": 0, "q2": 0, "q3": 0, "q4": 0, "q5": 0, "q6": 0, "q7": 0, "total": 0}
inventory: Dict[str, int] = {"used": 0, "total": 0} inventory: Dict[str, int] = {"used": 0, "total": 0}
@ -1982,22 +1983,21 @@ class CitizenMilitary(CitizenTravel, CitizenTasks):
return ret return ret
class CitizenAnniversary(BaseCitizen): class CitizenPolitics(BaseCitizen):
def collect_anniversary_reward(self) -> Response: def get_country_parties(self, country_id: int = None) -> dict:
return self._post_main_collect_anniversary_reward() if country_id is None:
country_id = self.details.citizenship
r = self._get_main_rankings_parties(country_id)
ret = {}
for name, id_ in re.findall(r'<a class="dotted" title="([^"]+)" href="/en/party/[\w\d-]+-(\d+)/1">', r.text):
ret.update({int(id_): name})
return ret
def get_anniversary_quest_data(self): def candidate_for_congress(self, presentation: str = "") -> Response:
return self._get_anniversary_quest_data().json() return self._post_candidate_for_congress(presentation)
def start_unlocking_map_quest_node(self, node_id: int): def candidate_for_party_presidency(self) -> Response:
return self._post_map_rewards_unlock(node_id) return self._get_candidate_party(self.politics.party_slug)
def collect_map_quest_node(self, node_id: int):
return self._post_map_rewards_claim(node_id)
def speedup_map_quest_node(self, node_id: int):
node = self.get_anniversary_quest_data().get('cities', {}).get(str(node_id), {})
return self._post_map_rewards_speedup(node_id, node.get("skipCost", 0))
class CitizenSocial(BaseCitizen): class CitizenSocial(BaseCitizen):
@ -2094,7 +2094,7 @@ class CitizenSocial(BaseCitizen):
self.report_error(f"Unsupported notification kind: \"{kind}\"!") self.report_error(f"Unsupported notification kind: \"{kind}\"!")
class Citizen(CitizenMilitary, CitizenAnniversary, CitizenEconomy, CitizenSocial, CitizenPolitics): class Citizen(CitizenAnniversary, CitizenEconomy, CitizenMedia, CitizenMilitary, CitizenPolitics, CitizenSocial):
debug: bool = False debug: bool = False
def __init__(self, email: str = "", password: str = "", auto_login: bool = True): def __init__(self, email: str = "", password: str = "", auto_login: bool = True):