gpt4 book ai didi

python - python react 分页按钮前进后退

转载 作者:行者123 更新时间:2023-12-01 09:09:21 25 4
gpt4 key购买 nike

我正在尝试制作一个按钮/ react 以在 3 个不同的图像之间来回切换,但该按钮不会返回上一个图像,只是前进到下一个图像,有人可以帮助我吗?

    if message.content.startswith('!image'):

msg1 = await Bot.send_file(message.channel, 'image1.png')

toReact = ('⏩')
for reaction in toReact:
await Bot.add_reaction(msg1, reaction)
def checkReaction(reaction, user):
e = str(reaction.emoji)
return e.startswith('⏩')
res = await Bot.wait_for_reaction(message=msg1, user=message.author, timeout=30, check=checkReaction)

if res is None:
await Bot.delete_message(msg1)

elif '⏩' in str(res.reaction.emoji):
await Bot.delete_message(msg1)
msg2 = await Bot.send_file(message.channel, 'image2.png')

toReact = ['⏪', '⏩']
for reaction in toReact:
await Bot.add_reaction(msg2, reaction)
def checkReaction2(reaction, user):
e = str(reaction.emoji)
return e.startswith('⏪','⏩')
res2 = await Bot.wait_for_reaction(message=msg2, user=message.author, timeout=30, check=checkReaction2)

if res2 is None:
await Bot.delete_message(msg2)

elif '⏩' in str(res.reaction.emoji):
await Bot.delete_message(mensagem2)
await Bot.send_file(message.channel, 'image3.png')

最佳答案

这就是我的想法。

基本上,我们有一个循环来检查每个 react 与我们想要的 react ,然后如果我们看到我们正在寻找的 react 之一,则删除旧消息并发送新消息。

from discord.ext import commands

bot = commands.Bot(command_prefix='!')

left = '⏪'
right = '⏩'

messages = ("1", "2", "3")

def predicate(message, l, r):
def check(reaction, user):
if reaction.message.id != message.id or user == bot.user:
return False
if l and reaction.emoji == left:
return True
if r and reaction.emoji == right:
return True
return False

return check


@bot.command(pass_context=True)
async def series(ctx):
index = 0
while True:
msg = await bot.say(messages[index])
l = index != 0
r = index != len(messages) - 1
if l:
await bot.add_reaction(msg, left)
if r:
await bot.add_reaction(msg, right)
# bot.wait_for_reaction
react, user = await bot.wait_for_reaction(check=predicate(msg, l, r))
if react.emoji == left:
index -= 1
elif react.emoji == right:
index += 1
await bot.delete_message(msg)

bot.run("TOKEN")

有人要求提供一个可以编辑消息而不是发送新消息的版本,我也将其更新到最新版本:

@bot.command(pass_context=True)
async def series(ctx):
index = 0
msg = None
action = ctx.send
while True:
res = await action(content=messages[index])
if res is not None:
msg = res
l = index != 0
r = index != len(messages) - 1
if l:
await msg.add_reaction(left)
if r:
await msg.add_reaction(right)
react, user = await bot.wait_for('reaction_add', check=predicate(msg, l, r))
if react.emoji == left:
index -= 1
elif react.emoji == right:
index += 1
action = msg.edit

关于python - python react 分页按钮前进后退,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51796005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com