Esempio n. 1
0
    async def log_event(self,
                        embed: Embed,
                        guild: Guild,
                        priority: bool = False,
                        **kwargs) -> None:
        """Have to use this backwards-ass method because it throws http exceptions."""

        guild_config = self.get_guild_config(guild)

        if priority:
            priority_modlog = int(guild_config.get("priority_modlog", 0))
            dest = self.bot.get_channel(priority_modlog)
        else:
            default_modlog = int(guild_config.get("default_modlog", 0))
            dest = self.bot.get_channel(default_modlog)

        if not dest:
            return

        try:
            for i, page in enumerate(embed.split()):
                if i:
                    await sleep(0.1)
                await dest.send(embed=page, **kwargs)
        except HTTPException as error:
            await self.errorlog.send(error)
Esempio n. 2
0
    async def err(self, ctx: Context, lines: int = 5):
        """Get stdout logs"""

        err = self.get_tail("error", lines)

        em = Embed(title="Administration: Tail", color=0x00FF00)
        em.add_field(name="Error", value=f"```diff\n{err}\n```", inline=False)

        for embed in em.split():
            await ctx.send(embed=embed)
            await sleep(0.1)
Esempio n. 3
0
    async def _eval(self, ctx: Context, *, code: str) -> None:
        """Run eval() on an input."""

        code = code.strip('` ')

        try:
            result = eval(code, self._env(ctx))
            if isawaitable(result):
                result = await result
            self.ret = result
            em = Embed(title='Eval on', description=MD.format(code), color=0x00FF00)
            em.add_field(name="Result:", value=MD.format(result), inline=False)

        except Exception as e:
            em = Embed(title='Eval on', desc=MD.format(code), color=0xFF0000)
            em.add_field(name=f"Exception: {e.__name__}", value=str(e), inline=False)

        for page in em.split():
            await ctx.send(embed=page)
            await sleep(0.1)