Я пытаюсь создать FAQ-бота на discord.py, и пока все идет хорошо. Я хотел добавить дополнительную функцию, при которой, когда бот обнаруживает FAQ, вместо прямой отправки ответа бот отправляет быстрое сообщение с двумя реакциями - большим пальцем вверх и большим пальцем вниз - и в зависимости от выбранной реакции. пользователем бот либо отправляет ответ, либо удаляет подсказку.
Теперь, когда запрашивается FAQ, бот обнаруживает его и отправляет запрос, спрашивая, хочет ли пользователь ответ, и даже реагирует на него. Проблема в том, что сообщение с подсказкой удаляется, как только бот заканчивает реагировать с помощью смайлика с опущенными пальцами. Я хочу, чтобы он дождался реакции пользователя и действовал соответственно.
Что я делаю неправильно? Пожалуйста помоги. Заранее спасибо!
@bot.event
async def on_message(message):
await bot.process_commands(message)
if (message.author.bot):
return
if(isQuestion(message.content)):
(answer_text, question_text) = answer_question(message.content)
if answer_text:
botmessage = await message.channel.send(f"""Do you want the answer to: {question_text} ?""")
await botmessage.add_reaction('\N{THUMBS UP SIGN}')
await botmessage.add_reaction('\N{THUMBS DOWN SIGN}')
def checkUp(reaction, user):
return user == message.author and str(reaction.emoji) == '\N{THUMBS UP SIGN}' or str(reaction.emoji) == '\N{THUMBS DOWN SIGN}'
try:
reaction, user = await bot.wait_for('reaction_add', timeout=60.0, check=checkUp)
except asyncio.TimeoutError:
await botmessage.delete()
else:
print(reaction.emoji)
if reaction.emoji == '\N{THUMBS UP SIGN}':
await botmessage.delete()
await message.channel.send(answer_text)
elif reaction.emoji == '\N{THUMBS DOWN SIGN}':
await botmessage.delete()