command.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:yui 作者: item4 项目源码 文件源码
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
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号