diff --git a/erepublik/citizen.py b/erepublik/citizen.py
index 0b0e0f7..9b0a404 100644
--- a/erepublik/citizen.py
+++ b/erepublik/citizen.py
@@ -210,6 +210,10 @@ class Citizen(classes.CitizenAPI):
return response
def post(self, url: str, data: dict = None, json: dict = None, **kwargs) -> Response:
+ if json is None:
+ json = {}
+ if data is None:
+ data = {}
if (self.now - self._req.last_time).seconds >= 14 * 60:
self.get_csrf_token()
if "_token" in data:
@@ -224,7 +228,6 @@ class Citizen(classes.CitizenAPI):
self.sleep(60)
return self.post(url, data, json, **kwargs)
- # response = super().post(url, data=data, json=json, **kwargs)
try:
resp_data = response.json()
if (resp_data.get("error") or not resp_data.get("status")) and resp_data.get("message", "") == "captcha":
@@ -248,7 +251,7 @@ class Citizen(classes.CitizenAPI):
def check_for_new_medals(self, html: str):
new_medals = re.findall(r'(
)',
html, re.M | re.S | re.I)
- data = {}
+ data: Dict[Tuple[str, Union[float, str]], Dict[str, Union[int, str, float]]] = {}
for medal in new_medals:
try:
info = re.search(r"New Achievement
.*?(.*?).*?"
@@ -263,10 +266,11 @@ class Citizen(classes.CitizenAPI):
except ValueError:
reward = reward[:-1]
- if title not in data:
- data[title] = {'about': about, 'kind': title, 'reward': reward, "count": 1, "currency": currency}
+ if (title, reward) not in data:
+ data[(title, reward)] = {'about': about, 'kind': title, 'reward': reward, "count": 1,
+ "currency": currency}
else:
- data[title]['count'] += 1
+ data[(title, reward)]['count'] += 1
except AttributeError:
continue
if data:
@@ -276,7 +280,7 @@ class Citizen(classes.CitizenAPI):
msgs = "\n".join(msgs)
self.telegram.report_medal(msgs)
- self.write_log("Found awards: {}".format(msgs))
+ self.write_log("Found awards:\n{}".format(msgs))
for info in data.values():
self.reporter.report_action("NEW_MEDAL", info)
@@ -1782,6 +1786,8 @@ class Citizen(classes.CitizenAPI):
battle_id = re.search(r'Join', html).group(1)
ret.update(can_attack=False, battle_id=battle_id)
+ elif re.search(r'This war is no longer active.', html):
+ ret.update(can_attack=False, ended=True)
else:
ret.update(can_attack=False)
return ret
diff --git a/erepublik/classes.py b/erepublik/classes.py
index 432a852..a2a01e4 100644
--- a/erepublik/classes.py
+++ b/erepublik/classes.py
@@ -250,7 +250,7 @@ class SlowRequests(Session):
file_data = {
"path": 'debug/requests',
- "time": self.last_time.strftime('%Y-%m-%d_%H-%M-%S'),
+ "time": self.last_time.strftime('%Y/%m/%d/%H-%M-%S'),
"name": utils.slugify(url[len(Citizen.url):]),
"extra": "_REDIRECT" if redirect else ""
}