Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
c874247335 | |||
6e9def4394 | |||
d6fbaa7945 | |||
eb740c60c7 | |||
240c409739 |
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
__author__ = """Eriks Karls"""
|
__author__ = """Eriks Karls"""
|
||||||
__email__ = 'eriks@72.lv'
|
__email__ = 'eriks@72.lv'
|
||||||
__version__ = '0.22.3.2'
|
__version__ = '0.23.0'
|
||||||
|
|
||||||
from erepublik import classes, utils, constants
|
from erepublik import classes, utils, constants
|
||||||
from erepublik.citizen import Citizen
|
from erepublik.citizen import Citizen
|
||||||
|
@ -178,6 +178,9 @@ class ErepublikArticleAPI(CitizenBaseAPI):
|
|||||||
def _get_main_article_json(self, article_id: int) -> Response:
|
def _get_main_article_json(self, article_id: int) -> Response:
|
||||||
return self.get(f"{self.url}/main/articleJson/{article_id}")
|
return self.get(f"{self.url}/main/articleJson/{article_id}")
|
||||||
|
|
||||||
|
def _get_main_delete_article(self, article_id: int) -> Response:
|
||||||
|
return self.get(f"{self.url}/main/delete-article/{article_id}/1")
|
||||||
|
|
||||||
def _post_main_article_comments(self, article_id: int, page: int = 1) -> Response:
|
def _post_main_article_comments(self, article_id: int, page: int = 1) -> Response:
|
||||||
data = dict(_token=self.token, articleId=article_id, page=page)
|
data = dict(_token=self.token, articleId=article_id, page=page)
|
||||||
if page:
|
if page:
|
||||||
|
@ -808,7 +808,14 @@ class CitizenTravel(BaseCitizen):
|
|||||||
if data.get('alreadyInRegion'):
|
if data.get('alreadyInRegion'):
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
country = constants.COUNTRIES[data.get('preselectCountryId')]
|
country = None
|
||||||
|
for country_data in data.get('countries').values():
|
||||||
|
if region_id in country_data.get('regions'):
|
||||||
|
country = constants.COUNTRIES[country_data.get('id')]
|
||||||
|
break
|
||||||
|
|
||||||
|
if country is None:
|
||||||
|
raise classes.ErepublikException('Region not found!')
|
||||||
|
|
||||||
if self._travel(country, region_id):
|
if self._travel(country, region_id):
|
||||||
self._report_action("TRAVEL", "Traveled to region")
|
self._report_action("TRAVEL", "Traveled to region")
|
||||||
@ -1437,6 +1444,19 @@ class CitizenMedia(BaseCitizen):
|
|||||||
"\n".join(["{}: {}".format(k, v) for k, v in kinds.items()]), kind
|
"\n".join(["{}: {}".format(k, v) for k, v in kinds.items()]), kind
|
||||||
))
|
))
|
||||||
|
|
||||||
|
def get_article(self, article_id: int) -> Dict[str, Any]:
|
||||||
|
return self._get_main_article_json(article_id).json()
|
||||||
|
|
||||||
|
def delete_article(self, article_id: int) -> NoReturn:
|
||||||
|
article_data = self.get_article(article_id)
|
||||||
|
if article_data and article_data['articleData']['canDelete']:
|
||||||
|
self._report_action("ARTICLE_DELETE",
|
||||||
|
f"Attempting to delete article '{article_data['article']['title']}' (#{article_id})",
|
||||||
|
kwargs=article_data)
|
||||||
|
self._get_main_delete_article(article_id)
|
||||||
|
else:
|
||||||
|
self.write_log(f"Unable to delete article (#{article_id})!")
|
||||||
|
|
||||||
|
|
||||||
class CitizenMilitary(CitizenTravel):
|
class CitizenMilitary(CitizenTravel):
|
||||||
all_battles: Dict[int, classes.Battle] = None
|
all_battles: Dict[int, classes.Battle] = None
|
||||||
@ -1608,6 +1628,7 @@ class CitizenMilitary(CitizenTravel):
|
|||||||
def get_cheap_tp_divisions(self) -> Dict[str, List[Tuple[int, classes.BattleDivision]]]:
|
def get_cheap_tp_divisions(self) -> Dict[str, List[Tuple[int, classes.BattleDivision]]]:
|
||||||
air_divs: List[Tuple[int, classes.BattleDivision]] = []
|
air_divs: List[Tuple[int, classes.BattleDivision]] = []
|
||||||
ground_divs: List[Tuple[int, classes.BattleDivision]] = []
|
ground_divs: List[Tuple[int, classes.BattleDivision]] = []
|
||||||
|
check_maverick = self.maverick and self.config.maverick
|
||||||
for battle in reversed(self.sorted_battles(True, True)):
|
for battle in reversed(self.sorted_battles(True, True)):
|
||||||
for division in battle.div.values():
|
for division in battle.div.values():
|
||||||
is_start_ok = utils.good_timedelta(division.battle.start, timedelta(minutes=-1)) < self.now
|
is_start_ok = utils.good_timedelta(division.battle.start, timedelta(minutes=-1)) < self.now
|
||||||
@ -1620,7 +1641,7 @@ class CitizenMilitary(CitizenTravel):
|
|||||||
else:
|
else:
|
||||||
air_divs.append((medal.get('1').get('raw_value'), division))
|
air_divs.append((medal.get('1').get('raw_value'), division))
|
||||||
elif not division.is_air and self.config.ground:
|
elif not division.is_air and self.config.ground:
|
||||||
if not division.div == self.division and not self.maverick:
|
if not division.div == self.division and not check_maverick:
|
||||||
continue
|
continue
|
||||||
division_medals = self.get_battle_round_data(division)
|
division_medals = self.get_battle_round_data(division)
|
||||||
medal = division_medals[self.details.citizenship == division.battle.defender.country]
|
medal = division_medals[self.details.citizenship == division.battle.defender.country]
|
||||||
@ -1974,13 +1995,8 @@ class CitizenMilitary(CitizenTravel):
|
|||||||
count = self.energy.food_fights
|
count = self.energy.food_fights
|
||||||
msg = "Fighting all-in. Doing %i hits" % count
|
msg = "Fighting all-in. Doing %i hits" % count
|
||||||
|
|
||||||
# All-in for AIR battles
|
|
||||||
elif all([self.config.air, self.config.all_in, self.energy.available >= self.energy.limit]):
|
|
||||||
count = self.energy.food_fights
|
|
||||||
msg = "Fighting all-in in AIR. Doing %i hits" % count
|
|
||||||
|
|
||||||
# Get to next Energy +1
|
# Get to next Energy +1
|
||||||
elif self.next_reachable_energy and self.config.next_energy:
|
elif self.config.next_energy and self.next_reachable_energy:
|
||||||
count = self.next_reachable_energy
|
count = self.next_reachable_energy
|
||||||
msg = "Fighting for +1 energy. Doing %i hits" % count
|
msg = "Fighting for +1 energy. Doing %i hits" % count
|
||||||
|
|
||||||
|
@ -357,6 +357,7 @@ class Config:
|
|||||||
telegram = True
|
telegram = True
|
||||||
telegram_chat_id = 0
|
telegram_chat_id = 0
|
||||||
telegram_token = ""
|
telegram_token = ""
|
||||||
|
maverick = False
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.auto_sell = []
|
self.auto_sell = []
|
||||||
@ -389,6 +390,7 @@ class Config:
|
|||||||
self.telegram = True
|
self.telegram = True
|
||||||
self.telegram_chat_id = 0
|
self.telegram_chat_id = 0
|
||||||
self.telegram_token = ""
|
self.telegram_token = ""
|
||||||
|
self.maverick = False
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def as_dict(self):
|
def as_dict(self):
|
||||||
@ -397,7 +399,7 @@ class Config:
|
|||||||
fight=self.fight, air=self.air, ground=self.ground, all_in=self.all_in,
|
fight=self.fight, air=self.air, ground=self.ground, all_in=self.all_in,
|
||||||
next_energy=self.next_energy, boosters=self.boosters, travel_to_fight=self.travel_to_fight,
|
next_energy=self.next_energy, boosters=self.boosters, travel_to_fight=self.travel_to_fight,
|
||||||
always_travel=self.always_travel, epic_hunt=self.epic_hunt, epic_hunt_ebs=self.epic_hunt_ebs,
|
always_travel=self.always_travel, epic_hunt=self.epic_hunt, epic_hunt_ebs=self.epic_hunt_ebs,
|
||||||
rw_def_side=self.rw_def_side, interactive=self.interactive,
|
rw_def_side=self.rw_def_side, interactive=self.interactive, maverick=self.maverick,
|
||||||
continuous_fighting=self.continuous_fighting, auto_buy_raw=self.auto_buy_raw,
|
continuous_fighting=self.continuous_fighting, auto_buy_raw=self.auto_buy_raw,
|
||||||
force_wam=self.force_wam, sort_battles_time=self.sort_battles_time, force_travel=self.force_travel,
|
force_wam=self.force_wam, sort_battles_time=self.sort_battles_time, force_travel=self.force_travel,
|
||||||
telegram=self.telegram, telegram_chat_id=self.telegram_chat_id, telegram_token=self.telegram_token)
|
telegram=self.telegram, telegram_chat_id=self.telegram_chat_id, telegram_token=self.telegram_token)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
[bumpversion]
|
[bumpversion]
|
||||||
current_version = 0.22.3.2
|
current_version = 0.23.0
|
||||||
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+)?
|
||||||
|
2
setup.py
2
setup.py
@ -50,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.22.3.2',
|
version='0.23.0',
|
||||||
zip_safe=False,
|
zip_safe=False,
|
||||||
)
|
)
|
||||||
|
Reference in New Issue
Block a user