add delete button to messages
This commit is contained in:
parent
f56064f1e1
commit
3679c0ebfe
@ -18,7 +18,7 @@ from miyu_bot.commands.common.asset_paths import get_chart_image_path, get_music
|
|||||||
from miyu_bot.commands.common.emoji import difficulty_emoji_ids
|
from miyu_bot.commands.common.emoji import difficulty_emoji_ids
|
||||||
from miyu_bot.commands.common.formatting import format_info
|
from miyu_bot.commands.common.formatting import format_info
|
||||||
from miyu_bot.commands.common.fuzzy_matching import romanize
|
from miyu_bot.commands.common.fuzzy_matching import romanize
|
||||||
from miyu_bot.commands.common.reaction_message import run_tabbed_message, run_paged_message
|
from miyu_bot.commands.common.reaction_message import run_tabbed_message, run_paged_message, run_deletable_message
|
||||||
|
|
||||||
|
|
||||||
class Music(commands.Cog):
|
class Music(commands.Cog):
|
||||||
@ -91,7 +91,8 @@ class Music(commands.Cog):
|
|||||||
value=format_info(music_info),
|
value=format_info(music_info),
|
||||||
inline=False)
|
inline=False)
|
||||||
|
|
||||||
await ctx.send(embed=embed)
|
message = await ctx.send(embed=embed)
|
||||||
|
await run_deletable_message(ctx, message)
|
||||||
|
|
||||||
@commands.command(name='chart',
|
@commands.command(name='chart',
|
||||||
aliases=[],
|
aliases=[],
|
||||||
|
@ -113,8 +113,17 @@ async def run_paged_message(ctx: Context, base_embed: discord.Embed, content: Li
|
|||||||
await run_reaction_message(ctx, message, arrows, callback, timeout)
|
await run_reaction_message(ctx, message, arrows, callback, timeout)
|
||||||
|
|
||||||
|
|
||||||
|
async def run_deletable_message(ctx: Context, message: Message, timeout=300):
|
||||||
|
await run_reaction_message(ctx, message, [], _noop, timeout=timeout)
|
||||||
|
|
||||||
|
|
||||||
|
async def _noop(n):
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
async def run_reaction_message(ctx: Context, message: Message, emojis: List[AnyEmoji],
|
async def run_reaction_message(ctx: Context, message: Message, emojis: List[AnyEmoji],
|
||||||
callback: Callable[[AnyEmoji], Awaitable[None]], timeout=300):
|
callback: Callable[[AnyEmoji], Awaitable[None]], timeout=300):
|
||||||
|
emojis.append('❎')
|
||||||
for emoji in emojis:
|
for emoji in emojis:
|
||||||
await message.add_reaction(emoji)
|
await message.add_reaction(emoji)
|
||||||
|
|
||||||
@ -124,6 +133,9 @@ async def run_reaction_message(ctx: Context, message: Message, emojis: List[AnyE
|
|||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
reaction, user = await ctx.bot.wait_for('reaction_add', timeout=timeout, check=check)
|
reaction, user = await ctx.bot.wait_for('reaction_add', timeout=timeout, check=check)
|
||||||
|
if reaction.emoji == '❎':
|
||||||
|
await message.delete()
|
||||||
|
return
|
||||||
await callback(reaction.emoji)
|
await callback(reaction.emoji)
|
||||||
await message.remove_reaction(reaction, user)
|
await message.remove_reaction(reaction, user)
|
||||||
except asyncio.TimeoutError:
|
except asyncio.TimeoutError:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user