Improved filters system
- `RoomEventData` is renamed to `EventContext` and moved to context.py - `EventContext.filter` is removed - Added context variables system which improves type hints and simplifies callbacks code - `BodyCommandFilter` sets context variables from now on - Added `super().__call__` invocation to filters implements in base.py - Examples are updated to include required changes
This commit is contained in:
@@ -13,23 +13,15 @@ import logging
|
||||
import random
|
||||
from PIL import Image
|
||||
|
||||
from mab import (
|
||||
MatrixBot,
|
||||
MatrixBotConfig,
|
||||
RoomEventData,
|
||||
MessageTypeFilter,
|
||||
BodyCommandFilter,
|
||||
SenderIsBotFilter,
|
||||
MessageType
|
||||
)
|
||||
from mab import *
|
||||
|
||||
from _environment import check_environment
|
||||
|
||||
async def on_gen_command(data: RoomEventData) -> None:
|
||||
async def on_gen_command(data: EventContext) -> None:
|
||||
"""This callback is called when `!gen R G B` command is received."""
|
||||
# convert R, G and B to floats
|
||||
try:
|
||||
r, g, b = [float(v) for v in data.event.command_args] # type: ignore
|
||||
r, g, b = [float(v) for v in data[CTX_CMD_ARGS]]
|
||||
except:
|
||||
await data.bot.send_text(data.room, "Invalid arguments")
|
||||
return
|
||||
@@ -53,7 +45,7 @@ async def on_gen_command(data: RoomEventData) -> None:
|
||||
# send
|
||||
await data.bot.send_image_bytes(data.room, buf, "noise.png")
|
||||
|
||||
async def on_wrong_message(data: RoomEventData) -> None:
|
||||
async def on_wrong_message(data: EventContext) -> None:
|
||||
"""This callback is called when a wrong message is received."""
|
||||
await data.bot.send_text(
|
||||
data.room,
|
||||
|
||||
Reference in New Issue
Block a user