Compare commits

...

4 Commits

5 changed files with 20 additions and 8 deletions

View File

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

View File

@ -288,8 +288,9 @@ class BaseCitizen(access_points.CitizenAPI):
if item_data.get('attributes').get('expirationInfo'): if item_data.get('attributes').get('expirationInfo'):
expire_info = item_data.get('attributes').get('expirationInfo') expire_info = item_data.get('attributes').get('expirationInfo')
expiration_info = [_expire_value_to_python(v) for v in expire_info['value']] expiration_info = [_expire_value_to_python(v) for v in expire_info['value']]
icon = item_data['icon'] if item_data[ if not item_data.get('icon') and item_data.get('isPackBooster'):
'icon'] else "//www.erepublik.net/images/modules/manager/tab_storage.png" item_data['icon'] = f"//www.erepublik.com/images/icons/boosters/52px/{item_data.get('type')}.png"
icon = item_data['icon'] if item_data['icon'] else "//www.erepublik.net/images/modules/manager/tab_storage.png"
inv_item: types.InvFinalItem = dict( inv_item: types.InvFinalItem = dict(
name=item_data.get("name"), time_left=item_data['active']['time_left'], icon=icon, name=item_data.get("name"), time_left=item_data['active']['time_left'], icon=icon,
kind=kind, expiration=expiration_info, quality=item_data.get("quality", 0) kind=kind, expiration=expiration_info, quality=item_data.get("quality", 0)
@ -1852,7 +1853,7 @@ class CitizenMilitary(CitizenTravel):
self.write_log(f"Hits: {total_hits:>4} | Damage: {total_damage}") self.write_log(f"Hits: {total_hits:>4} | Damage: {total_damage}")
ok_to_fight = False ok_to_fight = False
if total_damage: if total_damage:
self.reporter.report_fighting(battle, not side.is_defender, division, total_damage, total_hits) self.report_fighting(battle, not side.is_defender, division, total_damage, total_hits)
# self.reporter.report_action('FIGHT', dict(battle_id=battle.id, side=side, dmg=total_damage, # self.reporter.report_action('FIGHT', dict(battle_id=battle.id, side=side, dmg=total_damage,
# air=battle.has_air, hits=total_hits, # air=battle.has_air, hits=total_hits,
# round=battle.zone_id, # round=battle.zone_id,
@ -2221,6 +2222,11 @@ class CitizenMilitary(CitizenTravel):
if division.wall['dom'] == 50 or division.wall['dom'] > 98: if division.wall['dom'] == 50 or division.wall['dom'] > 98:
yield division, division.wall['for'] == battle.invader.country.id yield division, division.wall['for'] == battle.invader.country.id
def report_fighting(self, battle: classes.Battle, invader: bool, division: classes.BattleDivision, damage: float, hits: int):
self.reporter.report_fighting(battle, invader, division, damage, hits)
if self.config.telegram:
self.telegram.report_fight(battle, invader, division, damage, hits)
class CitizenPolitics(BaseCitizen): class CitizenPolitics(BaseCitizen):
def get_country_parties(self, country: constants.Country = None) -> dict: def get_country_parties(self, country: constants.Country = None) -> dict:

View File

@ -974,7 +974,7 @@ class TelegramReporter:
self._last_time = utils.good_timedelta(utils.now(), datetime.timedelta(minutes=-5)) self._last_time = utils.good_timedelta(utils.now(), datetime.timedelta(minutes=-5))
self._last_full_energy_report = utils.good_timedelta(utils.now(), datetime.timedelta(minutes=-30)) self._last_full_energy_report = utils.good_timedelta(utils.now(), datetime.timedelta(minutes=-30))
if self.__queue: if self.__queue:
self.send_message("\n\n\n\n".join(self.__queue)) self.send_message("Telegram initialized")
def send_message(self, message: str) -> bool: def send_message(self, message: str) -> bool:
self.__queue.append(message) self.__queue.append(message)
@ -1002,13 +1002,19 @@ class TelegramReporter:
new_line = '\n' if multiple else '' new_line = '\n' if multiple else ''
self.send_message(f"New award: {new_line}*{msg}*") self.send_message(f"New award: {new_line}*{msg}*")
def report_fight(self, battle: "Battle", invader: bool, division: "BattleDivision", damage: float, hits: int):
side_txt = (battle.invader if invader else battle.defender).country.iso
self.send_message(f"*Fight report*:\n{int(damage):,d} dmg ({hits} hits) in"
f" [battle {battle.id} for {battle.region_name[:16]}]({battle.link}) in d{division.div} on "
f"{side_txt} side")
def __send_messages(self): def __send_messages(self):
while self._next_time > utils.now(): while self._next_time > utils.now():
if self.__thread_stopper.is_set(): if self.__thread_stopper.is_set():
break break
self.__thread_stopper.wait(utils.get_sleep_seconds(self._next_time)) self.__thread_stopper.wait(utils.get_sleep_seconds(self._next_time))
message = "\n\n\n\n".join(self.__queue) message = "\n\n\n".join(self.__queue)
if self.player_name: if self.player_name:
message = f"Player *{self.player_name}*\n" + message message = f"Player *{self.player_name}*\n" + message
response = post(self.api_url, json=dict(chat_id=self.chat_id, text=message, parse_mode="Markdown")) response = post(self.api_url, json=dict(chat_id=self.chat_id, text=message, parse_mode="Markdown"))

View File

@ -1,5 +1,5 @@
[bumpversion] [bumpversion]
current_version = 0.23.4.6 current_version = 0.23.4.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

@ -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.23.4.6', version='0.23.4.7',
zip_safe=False, zip_safe=False,
) )