|
24 | 24 |
|
25 | 25 |
|
26 | 26 | class LinkTargetMessage(discord.ui.View):
|
27 |
| - """The button that relays the user to the bookmarked message.""" |
| 27 | + """ |
| 28 | + The button that relays the user to the bookmarked message. |
| 29 | +
|
| 30 | + Attributes |
| 31 | + __________ |
| 32 | + dm_message: discord.Message |
| 33 | + The message that will be sent to the bookmark's requester DMs |
| 34 | +
|
| 35 | + """ |
| 36 | + |
| 37 | + dm_message: discord.Message | None |
28 | 38 |
|
29 | 39 | def __init__(self, target_message: discord.Message):
|
30 | 40 | super().__init__()
|
| 41 | + self.dm_message = None |
31 | 42 | self.add_item(discord.ui.Button(label="View Message", url=target_message.jump_url))
|
32 | 43 |
|
| 44 | + @discord.ui.button(label="Delete bookmark", style=discord.ButtonStyle.red) |
| 45 | + async def button_callback(self, interaction: discord.Interaction, button: discord.Button) -> None: |
| 46 | + """The button callback.""" |
| 47 | + if self.dm_message: |
| 48 | + await self.dm_message.delete() |
| 49 | + |
33 | 50 |
|
34 | 51 | class SendBookmark(discord.ui.View):
|
35 | 52 | """The button that sends the bookmark to other users."""
|
@@ -110,7 +127,9 @@ async def action_bookmark(
|
110 | 127 | """
|
111 | 128 | embed = self.build_bookmark_dm(target_message, title)
|
112 | 129 | try:
|
113 |
| - await member.send(embed=embed, view=LinkTargetMessage(target_message)) |
| 130 | + view = LinkTargetMessage(target_message) |
| 131 | + dm_message = await member.send(embed=embed, view=view) |
| 132 | + view.dm_message = dm_message |
114 | 133 | except discord.Forbidden:
|
115 | 134 | error_embed = self.build_error_embed(f"{member.mention}, please enable your DMs to receive the bookmark.")
|
116 | 135 | await channel.send(embed=error_embed)
|
|
0 commit comments