This commit is contained in:
Eriks Karls 2020-04-23 14:28:26 +03:00
parent 2eecd9fd4d
commit 2aa1cbd79e
4 changed files with 18 additions and 15 deletions

View File

@ -5,7 +5,7 @@
__author__ = """Eriks Karls"""
__email__ = 'eriks@72.lv'
__version__ = '0.20.0'
__commit_id__ = "2efc949"
__commit_id__ = "2eecd9f"
from erepublik import classes, utils
from erepublik.citizen import Citizen

View File

@ -7,7 +7,7 @@ from threading import Event
from time import sleep
from typing import Any, Dict, List, Optional, Set, Tuple, Union, Callable, NoReturn
from requests import RequestException, Response
from requests import RequestException, Response, HTTPError
from erepublik import utils
from erepublik.classes import (Battle, BattleDivision, CitizenAPI, Config, Details, Energy, ErepublikException,
@ -538,7 +538,11 @@ class BaseCitizen(CitizenAPI):
title = info.group(2).strip()
award_id = re.search(r'"wall_enable_alerts_(\d+)', medal)
if award_id:
self._post_main_wall_post_automatic(message=title, achievement_id=award_id.group(1))
try:
award_id = int(award_id.group(1))
self._post_main_wall_post_automatic(message=title, achievement_id=award_id)
except ValueError:
pass
reward, currency = info.group(3).strip().split(" ")
while not isinstance(reward, float):
try:
@ -957,7 +961,7 @@ class CitizenEconomy(CitizenTravel):
return {"gold": 0, "cc": 0, 'ok': False}
def accept_money_donations(self):
for notification in self._get_main_notifications_ajax_system():
for notification in self._get_main_notifications_ajax_system().json():
don_id = re.search(r"erepublik.functions.acceptRejectDonation\(\"accept\", (\d+)\)", notification)
if don_id:
self._get_main_money_donation_accept(int(don_id.group(1)))
@ -1478,7 +1482,8 @@ class CitizenMilitary(CitizenTravel):
Will auto activate booster and travel if allowed to do it.
:param battle_id: int BattleId - battle to fight in
:type battle_id: int
:param side_id: int or None. Battle side to fight in, If side_id not == invader id or not in invader deployed allies list, then defender's side is chosen
:param side_id: int or None. Battle side to fight in, If side_id not == invader id or not in invader deployed
allies list, then defender's side is chosen
:type side_id: int
:param count: How many hits to do, if not specified self.should_fight() is called.
:type count: int
@ -1535,7 +1540,7 @@ class CitizenMilitary(CitizenTravel):
return 0, 1, 0
try:
j_resp = response.json()
except:
except (ValueError, HTTPError, RequestException):
return 0, 10, 0
hits = 0
damage = 0
@ -2250,7 +2255,7 @@ class Citizen(CitizenAnniversary, CitizenCompanies, CitizenEconomy, CitizenLeade
self.send_inventory_update()
sleep_seconds = (start_time - self.now).total_seconds()
self.stop_threads.wait(sleep_seconds if sleep_seconds > 0 else 0)
except:
except: # noqa
self.report_error("State updater crashed")
def send_state_update(self):

View File

@ -8,7 +8,6 @@ from typing import Any, Dict, Iterable, List, Tuple, Union
from requests import Response, Session, post
from erepublik import utils
from erepublik.access_points import CitizenAPI
try:
import simplejson as json
@ -435,7 +434,7 @@ class Reporter:
try:
r = self.__bot_update(dict(key=self.key, check=True, player_id=self.citizen_id))
if not r.json().get("status"):
r = self._req.post("{}/bot/register".format(self.url), json=dict(name=self.name, email=self.email,
self._req.post("{}/bot/register".format(self.url), json=dict(name=self.name, email=self.email,
player_id=self.citizen_id))
finally:
self.__registered = True
@ -476,7 +475,7 @@ class MyJSONEncoder(json.JSONEncoder):
return float("{:.02f}".format(o))
elif isinstance(o, datetime.datetime):
return dict(__type__='datetime', date=o.strftime("%Y-%m-%d"), time=o.strftime("%H:%M:%S"),
tzinfo=o.tzinfo.zone if o.tzinfo else None)
tzinfo=o.tzinfo.tzname if o.tzinfo else None)
elif isinstance(o, datetime.date):
return dict(__type__='date', date=o.strftime("%Y-%m-%d"))
elif isinstance(o, datetime.timedelta):

View File

@ -21,7 +21,6 @@ try:
except ImportError:
import json
__all__ = ["FOOD_ENERGY", "COMMIT_ID", "COUNTRIES", "erep_tz", 'COUNTRY_LINK',
"now", "localize_dt", "localize_timestamp", "good_timedelta", "eday_from_date", "date_from_eday",
"get_sleep_seconds", "interactive_sleep", "silent_sleep",