Discord.py正在从审核日志中删除一些邮件



我正在用discord.py制作一个日志系统。目前,我正在尝试从一个审计日志条目中删除消息的数量(因为有时审计日志会更新一个条目,而不是创建一个新条目(,所以我试着用"entry.action.count";。这是我的代码

@client.command()
@commands.has_permissions(administrator=True)
async def deletecount(ctx):
async for entry in ctx.guild.audit_logs(limit=1, action=discord.AuditLogAction.message_delete):
print(entry.action.count)

但它没有打印删除的消息数量,而是打印

<built-in method count of _EnumValue_AuditLogAction object at 0x000001FF9769C640>

从这个屏幕截图中,在这种情况下,最新的条目有5条已删除的消息。我正试着把";5〃;。那么,如何获取从最新审核日志条目中删除的邮件数量呢?文档中没有关于如何使用entry.action.的额外属性的进一步信息

我还应该补充一点,我已经询问过某人,他们建议尝试print(entry.action.count()),但我得到了

TypeError: tuple.count() takes exactly one argument (0 given)

应该给出什么论点?提前谢谢。

有可能,使用extra属性,它会返回一个包含您想要的数据的dict(文档不会给您很多信息,因为返回值与操作类型不同(:

async for entry in ctx.guild.audit_logs(limit=1, action=discord.AuditLogAction.message_bulk_delete):
count = entry.extra['count']

AuditLogEntry.extra的返回值因事件类型而异,上面的示例仅适用于message_bulk_delete

PS:您在迭代器中使用了错误的action,它应该是AuditLogAction.message_bulk_delete而不是AuditLogAction.message_delete

参考文献:

  • AuditLogEntry.extra

最新更新