如何从审核日志不一致中获取特定信息

时间:2020-11-11 15:44:35

标签: discord.py

我需要审核日志来为我提供名称更改的信息,而不是所有日志。这是我正在使用的当前代码。您可以修改它以仅读取某些日志

async def save_audit_logs(guild):
 with open(f'audit_logs_{guild.name}', 'w+') as f:
      async for entry in guild.audit_logs(limit=100):
           f.write('{0.user} did {0.action} to {0.target}'.format(entry))

@client.event
    async def on_message(message):
    if message.content.startswith('audit'):
        await save_audit_logs(message.channel.guild)

1 个答案:

答案 0 :(得分:0)

您可以使用on_member_update()进行此操作:

@client.event
async def on_member_update(self, before, after):
    channel = get(before.guild.text_channels, name='log channel name')
    if before.display_name != after.display_name:
        await channel.send(f'{before.mention} changed named')

如果您想知道谁更改了用户名:

entry = list(await after.guild.audit_logs(limit=1).flatten())[0]
user = entry.user

如果要访问旧名称和新名称:

prev_name = before.display_name
cur_name = after.display_name
相关问题