ฉันกำลังพยายามสร้างบอทคำถามที่พบบ่อยบน discord.py และจนถึงตอนนี้ก็ดำเนินไปด้วยดี ฉันต้องการเพิ่มคุณสมบัติพิเศษที่เมื่อบอทตรวจพบคำถามที่พบบ่อย แทนที่จะส่งคำตอบโดยตรง บอทจะส่งข้อความแจ้งพร้อมปฏิกิริยาสองแบบ -- ยกนิ้วโป้งขึ้นและยกนิ้วโป้งลง -- และขึ้นอยู่กับปฏิกิริยาที่เลือก โดยผู้ใช้ บอทจะส่งคำตอบหรือลบข้อความแจ้ง
ตอนนี้เมื่อมีการถามคำถามที่พบบ่อย บอทจะตรวจจับและส่งข้อความถามว่าผู้ใช้ต้องการคำตอบหรือไม่และยังตอบสนองต่อคำถามนั้นด้วย ปัญหาคือข้อความแจ้งจะถูกลบทันทีที่บอทโต้ตอบกับอิโมจิ Thumbs-down เสร็จ ฉันต้องการให้ผู้ใช้โต้ตอบและดำเนินการตามนั้น
ผมทำอะไรผิดหรือเปล่า? กรุณาช่วย. ขอบคุณล่วงหน้า!
@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()