我正在制作一个Discord机器人,该机器人查询Spotify API并以Discord嵌入的形式返回结果。它不会在多个消息中发送多个结果,而是发送一条在嵌入中显示一个结果的消息,用户可以通过与⬅️表情符号或➡️表情符号进行反应来浏览。
当漫游器检测到on_reaction_add event
时,它会检测反应是the️还是or️表情符号,并编辑具有该反应的消息以更新嵌入。
但是,用我的方法,每当有人向bot的其他消息添加⬅️或➡️反应时,该bot都会对其进行编辑,而我无法弄清楚如何让bot记住用户给出的查询,然后获取Spotify API再次使用相同的查询,但具有不同的偏移量。
我的问题是,如何让机器人仅在嵌入了Spotify的邮件上检测⬅️和➡️反应,以及如何让机器人记住邮件中的查询内容?
这是我正在使用的代码:
@client.event
async def on_message(message):
#if the spotify command is triggered
#fetch from the API
spotifyEmbed = discord.Embed(title=resultName, ...)
spotifyEmbed.set_image(url=spotifyImgUrl)
spotifyMessage = await message.channel.send(embed=spotifyEmbed)
await spotifyMessage.add_reaction("⬅️")
await spotifyMessage.add_reaction("➡️")
@client.event
async def on_reaction_add(reaction, user):
if user != client.user:
if str(reaction.emoji) == "➡️":
#fetch new results from the Spotify API
newSearchResult = discord.Embed(...)
await reaction.message.edit(embed=newSearchResult)
if str(reaction.emoji) == "⬅️":
#fetch new results from the Spotify API
newSearchResult = discord.Embed(...)
await reaction.message.edit(embed=newSearchResult)
答案 0 :(得分:0)
使用reaction.message
。它检测到响应的消息。