Was trying to send messages before citizen has been initialized
This commit is contained in:
parent
1ee47dfdcf
commit
630c7cbc76
@ -63,17 +63,18 @@ class Citizen(classes.CitizenAPI):
|
||||
self.my_companies = classes.MyCompanies()
|
||||
self.set_debug(True)
|
||||
self.reporter = classes.Reporter()
|
||||
self.telegram = classes.TelegramBot()
|
||||
self.stop_threads = threading.Event()
|
||||
if auto_login:
|
||||
self.login(telegram)
|
||||
self.login()
|
||||
if telegram is None:
|
||||
self.telegram.do_init(620981703, "864251270:AAFzZZdjspI-kIgJVk4gF3TViGFoHnf8H4o", self.name)
|
||||
else:
|
||||
self.telegram.do_init(telegram['chat_id'], telegram['token'])
|
||||
|
||||
def login(self, telegram: Dict[str, Union[str, int]] = None):
|
||||
self.get_csrf_token()
|
||||
|
||||
if telegram is None:
|
||||
self.telegram = classes.TelegramBot(620981703, "864251270:AAFzZZdjspI-kIgJVk4gF3TViGFoHnf8H4o", self.name)
|
||||
else:
|
||||
self.telegram = classes.TelegramBot(telegram['chat_id'], telegram['token'])
|
||||
self.telegram.send_message("*Started* {:%F %T}".format(utils.now()))
|
||||
self.update_citizen_info()
|
||||
self.reporter.do_init(self.name, self.config.email, self.details.citizen_id)
|
||||
|
@ -1144,18 +1144,27 @@ class EnergyToFight:
|
||||
|
||||
|
||||
class TelegramBot:
|
||||
__initialized = False
|
||||
__queue: List[str] = []
|
||||
chat_id = 0
|
||||
api_url = ""
|
||||
player_name = ""
|
||||
|
||||
def __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.api_url = "https://api.telegram.org/bot{}/sendMessage".format(token)
|
||||
self.player_name = player_name
|
||||
self.__initialized = True
|
||||
if self.__queue:
|
||||
self.send_message("\n\n––––––––––––––––––––––\n\n".join(self.__queue))
|
||||
|
||||
def send_message(self, message: str) -> bool:
|
||||
if self.player_name:
|
||||
message = f"Player *{self.player_name}*\n" + message
|
||||
response = post(self.api_url, json=dict(chat_id=self.chat_id, text=message, parse_mode="Markdown"))
|
||||
if not self.__initialized:
|
||||
self.__queue.append(message)
|
||||
return True
|
||||
return response.json().get('ok')
|
||||
|
||||
def report_free_bhs(self, battles: List[Tuple[int, int, int, int, datetime.timedelta]]):
|
||||
|
Loading…
x
Reference in New Issue
Block a user