Add returns from ev.call_events

This commit is contained in:
Maxim Khomutov 2023-07-14 22:29:37 +03:00
parent 5a40ab8b05
commit 99f40eadb0

View File

@ -9,9 +9,10 @@ class EventsSystem:
def __init__(self):
# TODO: default events
self.__events = {
"on_started": [self.on_started],
"on_stop": [self.on_stop],
"on_auth": [self.on_auth]
"on_started": [],
"auth_sent_key": [],
"auth_ok": [],
"chat_receive": [],
}
self.log = get_logger("EventsSystem")
@ -31,11 +32,20 @@ class EventsSystem:
else:
self.__events[event_name].append(event_func)
def call_event(self, event_name, *data):
def call_event(self, event_name, *args, **kwargs):
self.log.debug(f"Using event '{event_name}'")
funcs_data = []
if event_name in self.__events.keys():
for event in self.__events[event_name]:
event(*data)
for func in self.__events[event_name]:
try:
funcs_data.append(func({"event_name": event_name, "args": args, "kwargs": kwargs}))
except Exception as e:
# TODO: i18n
self.log.error(f'Error while calling "{event_name}"; In function: "{func.__name__}"')
self.log.exception(e)
else:
# TODO: i18n
self.log.warning(f"Event {event_name} does not exist. Just skipping it...")
return funcs_data