diff options
| author | 2021-03-28 13:19:40 -0400 | |
|---|---|---|
| committer | 2021-03-28 13:21:32 -0400 | |
| commit | 39d71b578b5f1cfaae2acd01743f8b7522e2c490 (patch) | |
| tree | c4c2981d207edaca069742b85c6706cd70949cc3 | |
| parent | Merge remote-tracking branch 'refs/remotes/origin/feat/dmrelay' into feat/dmr... (diff) | |
Reduce API calls in `!dmrelay`.
| -rw-r--r-- | bot/exts/moderation/dm_relay.py | 28 | 
1 files changed, 13 insertions, 15 deletions
| diff --git a/bot/exts/moderation/dm_relay.py b/bot/exts/moderation/dm_relay.py index cc63a80fe..a03230b3d 100644 --- a/bot/exts/moderation/dm_relay.py +++ b/bot/exts/moderation/dm_relay.py @@ -22,22 +22,11 @@ class DMRelay(Cog):          """Relays the direct message history between the bot and given user."""          log.trace(f"Relaying DMs with {user.name} ({user.id})") -        if self.bot.user == user: -            await ctx.send(f"{Emojis.cross_mark} No direct message history with myself.") +        if user.bot: +            await ctx.send(f"{Emojis.cross_mark} No direct message history with bots.")              return -        # Force cache to update -        await user.history(limit=1).flatten() - -        if not user.dm_channel: -            await ctx.send(f"{Emojis.cross_mark} No direct message history with {user.mention}.") -            return - -        output = textwrap.dedent(f"""\ -            User: {user} ({user.id}) -            Channel ID: {user.dm_channel.id}\n -        """) - +        output = ""          async for msg in user.history(limit=limit, oldest_first=True):              created_at = msg.created_at.strftime(r"%Y-%m-%d %H:%M") @@ -57,7 +46,16 @@ class DMRelay(Cog):              if attachments:                  output += attachments + "\n" -        paste_link = await send_to_paste_service(output, extension="txt") +        if not output: +            await ctx.send(f"{Emojis.cross_mark} No direct message history with {user.mention}.") +            return + +        metadata = textwrap.dedent(f"""\ +            User: {user} ({user.id}) +            Channel ID: {user.dm_channel.id}\n +        """) + +        paste_link = await send_to_paste_service(metadata + output, extension="txt")          await ctx.send(paste_link)      async def cog_check(self, ctx: Context) -> bool: | 
