Variable and method redeclaration
This commit is contained in:
parent
b7f8182ef5
commit
12aee23739
@ -1,10 +1,9 @@
|
|||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
from threading import Event
|
|
||||||
|
|
||||||
from itertools import product
|
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
|
from itertools import product
|
||||||
from json import loads, dumps
|
from json import loads, dumps
|
||||||
|
from threading import Event
|
||||||
from time import sleep
|
from time import sleep
|
||||||
from typing import Dict, List, Tuple, Any, Union, Set
|
from typing import Dict, List, Tuple, Any, Union, Set
|
||||||
|
|
||||||
@ -12,7 +11,6 @@ from requests import Response, RequestException
|
|||||||
|
|
||||||
from erepublik.classes import (CitizenAPI, Battle, Reporter, Config, Energy, Details, Politics, MyCompanies,
|
from erepublik.classes import (CitizenAPI, Battle, Reporter, Config, Energy, Details, Politics, MyCompanies,
|
||||||
TelegramBot, ErepublikException, BattleDivision, MyJSONEncoder)
|
TelegramBot, ErepublikException, BattleDivision, MyJSONEncoder)
|
||||||
|
|
||||||
from erepublik.utils import *
|
from erepublik.utils import *
|
||||||
|
|
||||||
|
|
||||||
@ -38,7 +36,7 @@ class Citizen(CitizenAPI):
|
|||||||
ot_points = 0
|
ot_points = 0
|
||||||
|
|
||||||
tg_contract = None
|
tg_contract = None
|
||||||
promos = None
|
promos: Dict[str, datetime] = None
|
||||||
|
|
||||||
eday = 0
|
eday = 0
|
||||||
|
|
||||||
@ -320,7 +318,11 @@ class Citizen(CitizenAPI):
|
|||||||
return
|
return
|
||||||
ugly_js = re.search(r'"promotions":\s*(\[{?.*?}?])', html).group(1)
|
ugly_js = re.search(r'"promotions":\s*(\[{?.*?}?])', html).group(1)
|
||||||
promos = loads(normalize_html_json(ugly_js))
|
promos = loads(normalize_html_json(ugly_js))
|
||||||
self.promos = {k: v for k, v in (self.promos.items() if self.promos else {}) if v > self.now}
|
if self.promos is None:
|
||||||
|
self.promos = {}
|
||||||
|
else:
|
||||||
|
self.promos.clear()
|
||||||
|
self.promos.update({k: v for k, v in self.promos.items() if v > self.now})
|
||||||
send_mail = False
|
send_mail = False
|
||||||
for promo in promos:
|
for promo in promos:
|
||||||
promo_name = promo.get("id")
|
promo_name = promo.get("id")
|
||||||
@ -549,8 +551,16 @@ class Citizen(CitizenAPI):
|
|||||||
|
|
||||||
resp_json = self._get_military_campaigns_json_list().json()
|
resp_json = self._get_military_campaigns_json_list().json()
|
||||||
if resp_json.get("countries"):
|
if resp_json.get("countries"):
|
||||||
self.all_battles = {}
|
if self.all_battles is None:
|
||||||
self.countries = {}
|
self.all_battles = {}
|
||||||
|
else:
|
||||||
|
self.all_battles.clear()
|
||||||
|
|
||||||
|
if self.countries is None:
|
||||||
|
self.countries = {}
|
||||||
|
else:
|
||||||
|
self.countries.clear()
|
||||||
|
|
||||||
for c_id, c_data in resp_json.get("countries").items():
|
for c_id, c_data in resp_json.get("countries").items():
|
||||||
if int(c_id) not in self.countries:
|
if int(c_id) not in self.countries:
|
||||||
self.countries.update({
|
self.countries.update({
|
||||||
@ -593,8 +603,7 @@ class Citizen(CitizenAPI):
|
|||||||
r_json = response.json()
|
r_json = response.json()
|
||||||
next_recovery = r_json.get("food_remaining_reset").split(":")
|
next_recovery = r_json.get("food_remaining_reset").split(":")
|
||||||
self.energy.set_reference_time(
|
self.energy.set_reference_time(
|
||||||
good_timedelta(self.now,
|
good_timedelta(self.now, timedelta(seconds=int(next_recovery[1]) * 60 + int(next_recovery[2])))
|
||||||
timedelta(seconds=int(next_recovery[1]) * 60 + int(next_recovery[2])))
|
|
||||||
)
|
)
|
||||||
self.energy.recovered = r_json.get("health")
|
self.energy.recovered = r_json.get("health")
|
||||||
self.energy.recoverable = r_json.get("food_remaining")
|
self.energy.recoverable = r_json.get("food_remaining")
|
||||||
@ -1511,8 +1520,7 @@ class Citizen(CitizenAPI):
|
|||||||
@property
|
@property
|
||||||
def next_wc_start(self) -> datetime:
|
def next_wc_start(self) -> datetime:
|
||||||
days = 1 - self.now.weekday() if 1 - self.now.weekday() > 0 else 1 - self.now.weekday() + 7
|
days = 1 - self.now.weekday() if 1 - self.now.weekday() > 0 else 1 - self.now.weekday() + 7
|
||||||
return good_timedelta(self.now.replace(hour=0, minute=0, second=0, microsecond=0),
|
return good_timedelta(self.now.replace(hour=0, minute=0, second=0, microsecond=0), timedelta(days=days))
|
||||||
timedelta(days=days))
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def time_till_week_change(self) -> timedelta:
|
def time_till_week_change(self) -> timedelta:
|
||||||
@ -1966,19 +1974,19 @@ class Citizen(CitizenAPI):
|
|||||||
process_error(msg, self.name, sys.exc_info(), self, self.commit_id, False)
|
process_error(msg, self.name, sys.exc_info(), self, self.commit_id, False)
|
||||||
|
|
||||||
def get_battle_top_10(self, battle_id: int) -> Dict[int, List[Tuple[int, int]]]:
|
def get_battle_top_10(self, battle_id: int) -> Dict[int, List[Tuple[int, int]]]:
|
||||||
battle = self.all_battles.get(battle_id)
|
return {}
|
||||||
round_id = battle.get('zone_id')
|
# battle = self.all_battles.get(battle_id)
|
||||||
division = self.division if round_id % 4 else 11
|
# round_id = battle.zone_id
|
||||||
|
# division = self.division if round_id % 4 else 11
|
||||||
resp = self._post_military_battle_console(battle_id, round_id, division).json()
|
#
|
||||||
resp.pop('rounds', None)
|
# resp = self._post_military_battle_console(battle_id, 'battleStatistics', round_id, division).json()
|
||||||
ret = dict()
|
# resp.pop('rounds', None)
|
||||||
for country_id, data in resp.items():
|
# ret = dict()
|
||||||
ret.update({int(country_id): []})
|
# for country_id, data in resp.items():
|
||||||
for place in sorted(data.get("fighterData", {}).values(), key=lambda _: -_['raw_value']):
|
# ret.update({int(country_id): []})
|
||||||
ret[int(country_id)].append((place['citizenId'], place['raw_value']))
|
# for place in sorted(data.get("fighterData", {}).values(), key=lambda _: -_['raw_value']):
|
||||||
|
# ret[int(country_id)].append((place['citizenId'], place['raw_value']))
|
||||||
return ret
|
# return ret
|
||||||
|
|
||||||
def to_json(self, indent: bool = False) -> str:
|
def to_json(self, indent: bool = False) -> str:
|
||||||
return dumps(self.__dict__, cls=MyJSONEncoder, indent=4 if indent else None, sort_keys=True)
|
return dumps(self.__dict__, cls=MyJSONEncoder, indent=4 if indent else None, sort_keys=True)
|
||||||
@ -2052,7 +2060,6 @@ class Citizen(CitizenAPI):
|
|||||||
|
|
||||||
def set_default_weapon(self, battle_id: int) -> int:
|
def set_default_weapon(self, battle_id: int) -> int:
|
||||||
battle = self.all_battles[battle_id]
|
battle = self.all_battles[battle_id]
|
||||||
battle_zone = battle.div[11 if battle.is_air else self.division].battle_zone_id
|
|
||||||
available_weapons = self._get_military_show_weapons(battle_id).json()
|
available_weapons = self._get_military_show_weapons(battle_id).json()
|
||||||
weapon_quality = -1
|
weapon_quality = -1
|
||||||
if not battle.is_air:
|
if not battle.is_air:
|
||||||
|
@ -796,11 +796,6 @@ Class for unifying eRepublik known endpoints and their required/optional paramet
|
|||||||
data.update(page=page)
|
data.update(page=page)
|
||||||
return self.post("{}/military/battle-console".format(self.url), data=data)
|
return self.post("{}/military/battle-console".format(self.url), data=data)
|
||||||
|
|
||||||
def _post_military_change_weapon(self, battle_id: int, battle_zone_id: int, customization_level: int) -> Response:
|
|
||||||
data = dict(_token=self.token, battleZoneId=battle_zone_id, battleId=battle_id,
|
|
||||||
customizationLevel=customization_level)
|
|
||||||
return self.post("{}/military/change-weapon".format(self.url), data=data)
|
|
||||||
|
|
||||||
def _post_military_deploy_bomb(self, battle_id: int, bomb_id: int) -> Response:
|
def _post_military_deploy_bomb(self, battle_id: int, bomb_id: int) -> Response:
|
||||||
data = dict(battleId=battle_id, bombId=bomb_id, _token=self.token)
|
data = dict(battleId=battle_id, bombId=bomb_id, _token=self.token)
|
||||||
return self.post("{}/military/deploy-bomb".format(self.url), data=data)
|
return self.post("{}/military/deploy-bomb".format(self.url), data=data)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user