def only(*channels: Union[Type[DM], str], error: Optional[str]=None)\
-> Callable[[Any, Event], Awaitable[bool]]:
"""Mark channel to allow to use handler."""
allow_dm = False
if DM in channels:
channels = tuple(x for x in channels if x is not DM)
allow_dm = True
async def callback(bot, event: Event) -> bool:
if isinstance(event.channel, (PrivateChannel, PublicChannel)):
if event.channel.name in channels:
return True
else:
if error:
await bot.say(
event.channel,
error
)
return False
if allow_dm:
return True
else:
if error:
await bot.say(
event.channel,
error
)
return False
return callback
评论列表
文章目录