Source code for simplematrixbotlib.listener

from nio import RoomMessageText, ReactionEvent


[docs] class Listener: def __init__(self, bot): self._bot = bot self._registry = [] self._startup_registry = []
[docs] def on_custom_event(self, event): def wrapper(func): if [func, event] in self._registry: func() else: self._registry.append([func, event]) return wrapper
[docs] def on_message_event(self, func): if [func, RoomMessageText] in self._registry: func() else: self._registry.append([func, RoomMessageText])
[docs] def on_reaction_event(self, func): async def wrapper(room, event): await func(room, event, event.key) self._registry.append([wrapper, ReactionEvent])
[docs] def on_startup(self, func): if func in self._startup_registry: func() else: self._startup_registry.append(func)