Trying to find how and where Telegram spam happens

This commit is contained in:
Eriks Karls 2019-09-28 16:03:31 +03:00
parent 7533608316
commit 17c73c79a7
2 changed files with 10 additions and 10 deletions

View File

@ -508,8 +508,6 @@ class Citizen(classes.CitizenAPI):
""" """
Try to eat food Try to eat food
""" """
self.update_citizen_info()
self.update_inventory()
if self.food["total"] > self.energy.interval: if self.food["total"] > self.energy.interval:
if self.energy.limit - self.energy.recovered > self.energy.interval or not self.energy.recoverable % 2: if self.energy.limit - self.energy.recovered > self.energy.interval or not self.energy.recoverable % 2:
self._eat("blue") self._eat("blue")
@ -518,7 +516,6 @@ class Citizen(classes.CitizenAPI):
else: else:
self.write_log("I'm out of food! But I'll try to buy some!\n{}".format(self.food)) self.write_log("I'm out of food! But I'll try to buy some!\n{}".format(self.food))
self.buy_food() self.buy_food()
self.update_inventory()
if self.food["total"] > self.energy.interval: if self.food["total"] > self.energy.interval:
self.eat() self.eat()
else: else:
@ -1235,8 +1232,7 @@ class Citizen(classes.CitizenAPI):
ret = items ret = items
return ret return ret
def buy_food(self) -> None: def buy_food(self):
self.update_money()
hp_per_quality = {"q1": 2, "q2": 4, "q3": 6, "q4": 8, "q5": 10, "q6": 12, "q7": 20} hp_per_quality = {"q1": 2, "q2": 4, "q3": 6, "q4": 8, "q5": 10, "q6": 12, "q7": 20}
hp_needed = 48 * self.energy.interval * 10 - self.food["total"] hp_needed = 48 * self.energy.interval * 10 - self.food["total"]
local_offers = self.get_market_offers(country_id=self.details.current_country, product="food") local_offers = self.get_market_offers(country_id=self.details.current_country, product="food")
@ -1552,7 +1548,6 @@ class Citizen(classes.CitizenAPI):
def get_raw_surplus(self) -> (float, float): def get_raw_surplus(self) -> (float, float):
frm = 0.00 frm = 0.00
wrm = 0.00 wrm = 0.00
self.update_companies()
for cdata in sorted(self.my_companies.companies.values()): for cdata in sorted(self.my_companies.companies.values()):
if cdata["industry_token"] == "FOOD": if cdata["industry_token"] == "FOOD":
raw = frm raw = frm

View File

@ -2,7 +2,9 @@ import datetime
import decimal import decimal
import hashlib import hashlib
import random import random
import sys
import time import time
import traceback
from collections import deque from collections import deque
from json import JSONDecodeError, loads, JSONEncoder from json import JSONDecodeError, loads, JSONEncoder
from typing import Any, Dict, List, Union, Mapping, Iterable, Tuple from typing import Any, Dict, List, Union, Mapping, Iterable, Tuple
@ -1152,12 +1154,14 @@ class TelegramBot:
chat_id = 0 chat_id = 0
api_url = "" api_url = ""
player_name = "" player_name = ""
__last_time: datetime.datetime = None
def do_init(self, chat_id: int, token: str, player_name: str = ""): def do_init(self, chat_id: int, token: str, player_name: str = ""):
self.chat_id = chat_id self.chat_id = chat_id
self.api_url = "https://api.telegram.org/bot{}/sendMessage".format(token) self.api_url = "https://api.telegram.org/bot{}/sendMessage".format(token)
self.player_name = player_name self.player_name = player_name
self.__initialized = True self.__initialized = True
self.__last_time = utils.good_timedelta(utils.now(), datetime.timedelta(minutes=-5))
if self.__queue: if self.__queue:
self.send_message("\n\n\n\n".join(self.__queue)) self.send_message("\n\n\n\n".join(self.__queue))
@ -1167,7 +1171,11 @@ class TelegramBot:
return True return True
if self.player_name: if self.player_name:
message = f"Player *{self.player_name}*\n" + message message = f"Player *{self.player_name}*\n" + message
if utils.good_timedelta(utils.now(), datetime.timedelta(seconds=-1)) <= self.__last_time:
tb = traceback.extract_stack()
message += "\n\n```\n{}\n```".format("\n".join([str(l) for l in tb]))
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"))
self.__last_time = utils.now()
return response.json().get('ok') return response.json().get('ok')
def report_free_bhs(self, battles: List[Tuple[int, int, int, int, datetime.timedelta]]): def report_free_bhs(self, battles: List[Tuple[int, int, int, int, datetime.timedelta]]):
@ -1187,10 +1195,7 @@ class TelegramBot:
self.send_message("Free BHs:\n" + "\n".join(battle_links)) self.send_message("Free BHs:\n" + "\n".join(battle_links))
def report_full_energy(self, available: int, limit: int, interval: int): def report_full_energy(self, available: int, limit: int, interval: int):
message = "" message = f"Full energy ({available}hp/{limit}hp +{interval}hp/6min)"
if self.player_name:
message = f"Player *{self.player_name}*\n"
message += f"Full energy ({available}hp/{limit}hp +{interval}hp/6min)"
self.send_message(message) self.send_message(message)
def report_medal(self, msg): def report_medal(self, msg):