如何使用 Discord 机器人从 channel.history 获取消息内容?

How do I get message contents from channel.history using a Discord bot?

我有(想要)打印消息历史记录的代码,但是我得到的信息、ID 等几乎没有用。

<Message id=x channel=<TextChannel id=x name='general' position=5 nsfw=False news=False category_id=x> type=<MessageType.default: 0> author=<Member id=x name='Cheesebot' discriminator='1916' bot=True nick=None guild=<Guild id=x name='NoLife Minecraft' shard_id=None chunked=False member_count=18>> flags=<MessageFlags value=0>>
<Message id=x channel=<TextChannel id=x name='general' position=5 nsfw=False news=False category_id=x> type=<MessageType.default: 0> author=<User id=x name='' discriminator='3912' bot=False> flags=<MessageFlags value=0>>
<Message id=x channel=<TextChannel id=x name='general' position=5 nsfw=False news=False category_id=x> type=<MessageType.default: 0> author=<Member id=x name='Cheesebot' discriminator='1916' bot=True nick=None guild=<Guild id=x name='NoLife Minecraft' shard_id=None chunked=False member_count=18>> flags=<MessageFlags value=0>>
<Message id=x channel=<TextChannel id=x name='general' position=5 nsfw=False news=False category_id=x> type=<MessageType.default: 0> author=<User id=x name='' discriminator='3912' bot=False> flags=<MessageFlags value=0>>
<Message id=x channel=<TextChannel id=x name='general' position=5 nsfw=False news=False category_id=x> type=<MessageType.default: 0> author=<User id=x name='' discriminator='3912' bot=False> flags=<MessageFlags value=0>>
<Message id=x channel=<TextChannel id=x name='general' position=5 nsfw=False news=False category_id=x> type=<MessageType.default: 0> author=<User id=x name='' discriminator='3912' bot=False> flags=<MessageFlags value=0>>
<Message id=x channel=<TextChannel id=x name='general' position=5 nsfw=False news=False category_id=x> type=<MessageType.default: 0> author=<Member id=x name='Cheesebot' discriminator='1916' bot=True nick=None guild=<Guild id=x name='NoLife Minecraft' shard_id=None chunked=False member_count=18>> flags=<MessageFlags value=0>>
<Message id=x channel=<TextChannel id=x name='general' position=5 nsfw=False news=False category_id=x> type=<MessageType.default: 0> author=<Member id=x name='Cheesebot' discriminator='1916' bot=True nick=None guild=<Guild id=x name='NoLife Minecraft' shard_id=None chunked=False member_count=18>> flags=<MessageFlags value=0>>
<Message id=x channel=<TextChannel id=x name='general' position=5 nsfw=False news=False category_id=x> type=<MessageType.default: 0> author=<User id=x name='' discriminator='3912' bot=False> flags=<MessageFlags value=0>>
<Message id=x channel=<TextChannel id=x name='general' position=5 nsfw=False news=False category_id=x> type=<MessageType.default: 0> author=<Member id=x name='Cheesebot' discriminator='1916' bot=True nick=None guild=<Guild id=x name='NoLife Minecraft' shard_id=None chunked=False member_count=18>> flags=<MessageFlags value=0>>

我现在的代码是这样的:

  async def messagesl(sendc):
    messages = await sendc.history(limit=10).flatten()
    return messages

我需要的是一种获取消息内容以及用户等其他信息的方法

敏感信息是一个 x(或者对于名字,什么都不是。)

messages 是 discord.Message 个对象的列表。您需要遍历列表并获取每个列表的 Message.content


参考资料

只需遍历消息并访问您需要的属性

messages = await sendc.history(limit=10).flatten()
contents = []

for message in messages:
    contents.append(message.content)

如果你想要一条线

contents = [message.content for message in messages]