mentions.py 文件源码

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

项目:LunaBot 作者: miraai 项目源码 文件源码
def handle_message_mention(self, origin, message):
        perms = origin.permissions_in(message.channel)
        if not perms.read_messages:
            # if you can't read the messages, then you shouldn't get PM'd.
            return

        messages = []

        async for msg in self.bot.logs_from(message.channel, limit=3, before=message):
            messages.append(msg)

        messages.reverse()
        messages.append(message)

        if origin.status != discord.Status.online:
            # wait 30 seconds for context if it's not always on
            await asyncio.sleep(30)

            # get an updated reference, server references don't change
            member = message.server.get_member(origin.id)
            if member is None or member.status == discord.Status.online:
                # they've come online, so they might have checked the mention
                return

            # get the messages after this one
            ext = []
            async for msg in self.bot.logs_from(message.channel, limit=3, after=message):
                ext.append(msg)

            ext.reverse()
            messages.extend(ext)

        try:
            fmt = 'You were mentioned in {0.channel.mention}:\n{1}'
            fmt = fmt.format(message, '\n'.join(map(self.format_message, messages)))
            await self.bot.send_message(origin, fmt)
        except:
            # silent failure best failure
            pass
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号