Discord python将整个聊天导出到.txt文件中



我已经进行了广泛的研究,但仍然没有找到实现这一点的方法,我基本上想要的是在听了一个命令后,让机器人抓取某人在上下文通道中发送的每一条消息,并将其转换为.txt文件,我甚至不知道使用python是否可行,因为我对不和谐的.py世界相对陌生,任何帮助都将不胜感激,提前谢谢。

您可以在for循环中使用channel.history(),如:

@client.command()
async def test(ctx):
filename = f"{ctx.channel.name}.txt"
with open(filename, "w") as file:
async for msg in ctx.channel.history(limit=None):
file.write(f"{msg.created_at} - {msg.author.display_name}: {msg.clean_content}n")

entry将是一个discord.Message对象,因此您可以访问它的作者、内容、提及。。。然而,由于API的限制,这种方法在使用大通道时可能非常缓慢,因此请确保限制此命令。

PS:msg.created_at以UTC为单位返回消息的创建时间。它是datetime.datetime类型,因此您可以使用datetime库对其进行格式化。

最新更新