diff options
Diffstat (limited to 'bot')
| -rw-r--r-- | bot/exts/utilities/bookmark.py | 38 | 
1 files changed, 20 insertions, 18 deletions
diff --git a/bot/exts/utilities/bookmark.py b/bot/exts/utilities/bookmark.py index bedaca80..22fa2dbb 100644 --- a/bot/exts/utilities/bookmark.py +++ b/bot/exts/utilities/bookmark.py @@ -31,32 +31,34 @@ class BookmarkForm(discord.ui.Modal):      async def on_submit(self, interaction: discord.Interaction) -> None:          """Sends the bookmark embed to the user with the newly chosen title."""          title = self.bookmark_title.value or self.bookmark_title.default -        await self.action_bookmark(interaction.channel, interaction.user, self.message, title) -        embed = Bookmark.build_success_reply_embed(self.message) -        await interaction.response.send_message(embed=embed, ephemeral=True) +        try: +            await self.dm_bookmark(interaction, self.message, title) +        except discord.Forbidden: +            await interaction.response.send_message( +                embed=Bookmark.build_error_embed("Enable your DMs to receive the bookmark."), +                ephemeral=True, +            ) +            return -    async def action_bookmark( +        await interaction.response.send_message( +            embed=Bookmark.build_success_reply_embed(self.message), +            ephemeral=True, +        ) + +    async def dm_bookmark(          self, -        channel: discord.TextChannel, -        member: discord.Member, +        interaction: discord.Interaction,          target_message: discord.Message, -        title: str +        title: str,      ) -> None:          """ -        Sends the given target_message as a bookmark to the member in DMs to the user. +        Sends the target_message as a bookmark to the interaction user's DMs. -        Send an error embed instead if the member has DMs disabled. +        Raises ``discord.Forbidden`` if the user's DMs are closed.          """          embed = Bookmark.build_bookmark_dm(target_message, title) -        try: -            await member.send(embed=embed, view=LinkTargetMessage(target_message)) -        except discord.Forbidden: -            await channel.send( -                embed=Bookmark.build_error_embed("Enable your DMs to receive the bookmark."), -                ephemeral=True, -            ) -        else: -            log.info(f"{member} bookmarked {target_message.jump_url} with title '{title}'") +        await interaction.user.send(embed=embed, view=LinkTargetMessage(target_message)) +        log.info(f"{interaction.user} bookmarked {target_message.jump_url} with title {title!r}")  class LinkTargetMessage(discord.ui.View):  |