Thread stopping
This commit is contained in:
@ -63,8 +63,8 @@ class Citizen(classes.CitizenAPI):
|
|||||||
self.my_companies = classes.MyCompanies()
|
self.my_companies = classes.MyCompanies()
|
||||||
self.set_debug(True)
|
self.set_debug(True)
|
||||||
self.reporter = classes.Reporter()
|
self.reporter = classes.Reporter()
|
||||||
self.telegram = classes.TelegramBot()
|
|
||||||
self.stop_threads = threading.Event()
|
self.stop_threads = threading.Event()
|
||||||
|
self.telegram = classes.TelegramBot(stop_event=self.stop_threads)
|
||||||
if auto_login:
|
if auto_login:
|
||||||
self.login()
|
self.login()
|
||||||
|
|
||||||
|
@ -1128,11 +1128,15 @@ class TelegramBot:
|
|||||||
chat_id = 0
|
chat_id = 0
|
||||||
api_url = ""
|
api_url = ""
|
||||||
player_name = ""
|
player_name = ""
|
||||||
|
__thread_stopper: threading.Event = None
|
||||||
_last_time: datetime.datetime = None
|
_last_time: datetime.datetime = None
|
||||||
_last_full_energy_report: datetime.datetime = None
|
_last_full_energy_report: datetime.datetime = None
|
||||||
_next_time: datetime.datetime = None
|
_next_time: datetime.datetime = None
|
||||||
_threads: List[threading.Thread] = []
|
_threads: List[threading.Thread] = []
|
||||||
|
|
||||||
|
def __init__(self, stop_event: threading.Event = None):
|
||||||
|
self.__thread_stopper = threading.Event() if stop_event is None else stop_event
|
||||||
|
|
||||||
def __dict__(self):
|
def __dict__(self):
|
||||||
return dict(chat_id=self.chat_id, api_url=self.api_url, player=self.player_name, last_time=self._last_time,
|
return dict(chat_id=self.chat_id, api_url=self.api_url, player=self.player_name, last_time=self._last_time,
|
||||||
next_time=self._next_time, queue=self.__queue, initialized=self.__initialized,
|
next_time=self._next_time, queue=self.__queue, initialized=self.__initialized,
|
||||||
@ -1189,7 +1193,9 @@ class TelegramBot:
|
|||||||
|
|
||||||
def __send_messages(self):
|
def __send_messages(self):
|
||||||
while self._next_time > utils.now():
|
while self._next_time > utils.now():
|
||||||
utils.silent_sleep(utils.get_sleep_seconds(self._next_time))
|
if self.__thread_stopper.is_set():
|
||||||
|
break
|
||||||
|
self.__thread_stopper.wait(utils.get_sleep_seconds(self._next_time))
|
||||||
|
|
||||||
message = "\n\n––––––––––––––––––––––\n\n".join(self.__queue)
|
message = "\n\n––––––––––––––––––––––\n\n".join(self.__queue)
|
||||||
if self.player_name:
|
if self.player_name:
|
||||||
|
Reference in New Issue
Block a user