基本上我想做的是发出一条如下所示的命令:
用户:>取消固定10
自动取消固定上述金额并返回:#channel中的固定金额
到目前为止,我要做的只是:
@Bot.command()
async def unpin(ctx, amount = 0):
await ctx.message.delete()
channel = ctx.channel
x = 0
amount = int(amount)
if amount == 0:
await ctx.send("How many messages do you want to unpin, max is 50.")
if amount > 50:
await ctx.send("Maximum amount is 50")
else:
pins = await channel.pins()
while x <= amount:
for message in pins:
await message.unpin()
x+=1
await ctx.send(f"Unpinned {x} messages from #{channel}")
这里的问题是,僵尸程序取消固定每条消息而不是给定数量的消息。我该如何更改才能取消固定的金额?
答案 0 :(得分:0)
使其更具pythonic风格。代替使用while x <= amount: ... x += 1
,使用for循环。另外,不要双重循环。第二个循环遍历所有引脚,并取消固定所有引脚。更好的系统示例如下:
...
else:
for i in range(amount):
pins = await channel.pins()
await pins[-1].unpin()
await ctx.send(f"Unpinned {x} messages from #{channel}")