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): def __init__(self):
# TODO: default events # TODO: default events
self.__events = { self.__events = {
"on_started": [self.on_started], "on_started": [],
"on_stop": [self.on_stop], "auth_sent_key": [],
"on_auth": [self.on_auth] "auth_ok": [],
"chat_receive": [],
} }
self.log = get_logger("EventsSystem") self.log = get_logger("EventsSystem")
@ -31,11 +32,20 @@ class EventsSystem:
else: else:
self.__events[event_name].append(event_func) 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}'") self.log.debug(f"Using event '{event_name}'")
funcs_data = []
if event_name in self.__events.keys(): if event_name in self.__events.keys():
for event in self.__events[event_name]: for func in self.__events[event_name]:
event(*data) 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: else:
# TODO: i18n # TODO: i18n
self.log.warning(f"Event {event_name} does not exist. Just skipping it...") self.log.warning(f"Event {event_name} does not exist. Just skipping it...")
return funcs_data