Example updates
This commit is contained in:
parent
5712007e3f
commit
ff2a0e02dc
@ -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__ = "f64a9dc"
|
__commit_id__ = "5712007"
|
||||||
|
|
||||||
from erepublik import classes, utils
|
from erepublik import classes, utils
|
||||||
from erepublik.citizen import Citizen
|
from erepublik.citizen import Citizen
|
||||||
|
@ -9,7 +9,8 @@ CONFIG = {
|
|||||||
'interactive': True,
|
'interactive': True,
|
||||||
'fight': True,
|
'fight': True,
|
||||||
'debug': True,
|
'debug': True,
|
||||||
'start_battles': {
|
'battle_launcher': {
|
||||||
|
# War id: {auto_attack: bool (attack asap when region is available), regions: [region_ids allowed to attack]}
|
||||||
121672: {"auto_attack": False, "regions": [661]},
|
121672: {"auto_attack": False, "regions": [661]},
|
||||||
125530: {"auto_attack": False, "regions": [259]},
|
125530: {"auto_attack": False, "regions": [259]},
|
||||||
125226: {"auto_attack": True, "regions": [549]},
|
125226: {"auto_attack": True, "regions": [549]},
|
||||||
@ -24,7 +25,7 @@ def _battle_launcher(player: Citizen):
|
|||||||
time. If player is allowed to fight, do 100 hits on the first round in players division.
|
time. If player is allowed to fight, do 100 hits on the first round in players division.
|
||||||
|
|
||||||
:param player: Logged in Citizen instance
|
:param player: Logged in Citizen instance
|
||||||
":type player: Citizen
|
:type player: Citizen
|
||||||
"""
|
"""
|
||||||
global CONFIG
|
global CONFIG
|
||||||
finished_war_ids = {*[]}
|
finished_war_ids = {*[]}
|
||||||
@ -38,13 +39,13 @@ def _battle_launcher(player: Citizen):
|
|||||||
player.update_war_info()
|
player.update_war_info()
|
||||||
running_wars = {b.war_id for b in player.all_battles.values()}
|
running_wars = {b.war_id for b in player.all_battles.values()}
|
||||||
for war_id in war_ids - finished_war_ids - running_wars:
|
for war_id in war_ids - finished_war_ids - running_wars:
|
||||||
war = war_data[str(war_id)]
|
war = war_data[war_id]
|
||||||
war_regions = set(war.get('regions'))
|
war_regions = set(war.get('regions'))
|
||||||
auto_attack = war.get('auto_attack')
|
auto_attack = war.get('auto_attack')
|
||||||
|
|
||||||
status = player.get_war_status(war_id)
|
status = player.get_war_status(war_id)
|
||||||
if status.get('ended', False):
|
if status.get('ended', False):
|
||||||
CONFIG['start_battles'].pop(str(war_id), None)
|
CONFIG['start_battles'].pop(war_id, None)
|
||||||
finished_war_ids.add(war_id)
|
finished_war_ids.add(war_id)
|
||||||
continue
|
continue
|
||||||
elif not status.get('can_attack'):
|
elif not status.get('can_attack'):
|
||||||
@ -76,18 +77,19 @@ def _battle_launcher(player: Citizen):
|
|||||||
else:
|
else:
|
||||||
next_attack_time = utils.good_timedelta(next_attack_time, timedelta(minutes=5))
|
next_attack_time = utils.good_timedelta(next_attack_time, timedelta(minutes=5))
|
||||||
player.stop_threads.wait(utils.get_sleep_seconds(next_attack_time))
|
player.stop_threads.wait(utils.get_sleep_seconds(next_attack_time))
|
||||||
except:
|
except Exception as e:
|
||||||
player.report_error("Task error: start_battles")
|
player.report_error(f"Task battle launcher ran into error {e}")
|
||||||
|
|
||||||
|
|
||||||
|
# noinspection DuplicatedCode
|
||||||
def main():
|
def main():
|
||||||
player = Citizen(email=CONFIG['email'], password=CONFIG['password'], auto_login=False)
|
player = Citizen(email=CONFIG['email'], password=CONFIG['password'], auto_login=False)
|
||||||
player.config.interactive = CONFIG['interactive']
|
player.config.interactive = CONFIG['interactive']
|
||||||
player.config.fight = CONFIG['fight']
|
player.config.fight = CONFIG['fight']
|
||||||
player.set_debug(CONFIG.get('debug', False))
|
player.set_debug(CONFIG.get('debug', False))
|
||||||
player.login()
|
player.login()
|
||||||
if CONFIG.get('start_battles'):
|
if CONFIG.get('battle_launcher'):
|
||||||
name = "{}-start_battles-{}".format(player.name, threading.active_count() - 1)
|
name = "{}-battle_launcher-{}".format(player.name, threading.active_count() - 1)
|
||||||
state_thread = threading.Thread(target=_battle_launcher, args=(player,), name=name)
|
state_thread = threading.Thread(target=_battle_launcher, args=(player,), name=name)
|
||||||
state_thread.start()
|
state_thread.start()
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ CONFIG = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# noinspection DuplicatedCode
|
||||||
def main():
|
def main():
|
||||||
player = Citizen(email=CONFIG['email'], password=CONFIG['password'], auto_login=False)
|
player = Citizen(email=CONFIG['email'], password=CONFIG['password'], auto_login=False)
|
||||||
player.config.interactive = CONFIG['interactive']
|
player.config.interactive = CONFIG['interactive']
|
||||||
@ -30,6 +31,7 @@ def main():
|
|||||||
if player.config.wam:
|
if player.config.wam:
|
||||||
tasks.update({'wam': now.replace(hour=14, minute=0)})
|
tasks.update({'wam': now.replace(hour=14, minute=0)})
|
||||||
while True:
|
while True:
|
||||||
|
try:
|
||||||
player.update_all()
|
player.update_all()
|
||||||
if tasks.get('work', dt_max) <= now:
|
if tasks.get('work', dt_max) <= now:
|
||||||
player.write_log("Doing task: work")
|
player.write_log("Doing task: work")
|
||||||
@ -51,7 +53,7 @@ def main():
|
|||||||
|
|
||||||
if tasks.get('wam', dt_max) <= now:
|
if tasks.get('wam', dt_max) <= now:
|
||||||
player.write_log("Doing task: Work as manager")
|
player.write_log("Doing task: Work as manager")
|
||||||
success = player.work_wam()
|
success = player.work_as_manager()
|
||||||
player.eat()
|
player.eat()
|
||||||
if success:
|
if success:
|
||||||
next_time = utils.good_timedelta(now.replace(hour=14, minute=0, second=0, microsecond=0),
|
next_time = utils.good_timedelta(now.replace(hour=14, minute=0, second=0, microsecond=0),
|
||||||
@ -96,6 +98,8 @@ def main():
|
|||||||
closest_next_time.strftime("%F %T"), sleep_seconds))
|
closest_next_time.strftime("%F %T"), sleep_seconds))
|
||||||
seconds_to_sleep = sleep_seconds if sleep_seconds > 0 else 0
|
seconds_to_sleep = sleep_seconds if sleep_seconds > 0 else 0
|
||||||
player.sleep(seconds_to_sleep)
|
player.sleep(seconds_to_sleep)
|
||||||
|
except Exception as e:
|
||||||
|
player.report_error(f"Task main loop ran into error: {e}")
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
Loading…
x
Reference in New Issue
Block a user