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
"""
self.update_citizen_info()
self.update_inventory()
if self.food["total"] > self.energy.interval:
if self.energy.limit - self.energy.recovered > self.energy.interval or not self.energy.recoverable % 2:
self._eat("blue")
@ -518,7 +516,6 @@ class Citizen(classes.CitizenAPI):
else:
self.write_log("I'm out of food! But I'll try to buy some!\n{}".format(self.food))
self.buy_food()
self.update_inventory()
if self.food["total"] > self.energy.interval:
self.eat()
else:
@ -1235,8 +1232,7 @@ class Citizen(classes.CitizenAPI):
ret = items
return ret
def buy_food(self) -> None:
self.update_money()
def buy_food(self):
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"]
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):
frm = 0.00
wrm = 0.00
self.update_companies()
for cdata in sorted(self.my_companies.companies.values()):
if cdata["industry_token"] == "FOOD":
raw = frm

View File

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