我正在编写一个机器人用于不和并试图删除邮件,但只是其中一个机器人,因为我正在做一些让他发垃圾邮件的命令。 所以我发现批量删除效果很好
@bot.command(pass_context = True)
async def purge(ctx,msglimit : int):
deleted = await bot.purge_from(ctx.message.channel, limit=msglimit)
await bot.say("Cleared **{}** Messages".format(len(deleted)))
但是文档显示了这个命令
def is_me(m):
return m.author == client.user
deleted = await client.purge_from(channel, limit=100, check=is_me)
await client.send_message(channel, 'Deleted {} message(s)'.format(len(deleted)))
但如果有人有想法,我无法真正开始工作
答案 0 :(得分:0)
def is_me(m):
return m.author == bot.user
@bot.command(pass_context = True)
async def purge(ctx):
deleted = await bot.purge_from(ctx.message.channel, check=is_me)
await bot.say("Cleared **{}** Messages".format(len(deleted)))
这会删除一定数量的消息(默认为100)。
purge_from
方法接受一个名为check
的参数,该参数是一个接收消息并返回是否应删除该消息的函数。
如果消息作者是机器人,is_me
函数将返回true。
这意味着调用purge
将删除拾取此命令的机器人。如果您需要机器人删除其他用户的消息,则需要更改条件。