Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何获取频道中所有消息的列表,然后从该列表中选择随机消息作为消息发送?_Python_Python 3.x_Discord_Discord.py_Discord.py Rewrite - Fatal编程技术网

Python 如何获取频道中所有消息的列表,然后从该列表中选择随机消息作为消息发送?

Python 如何获取频道中所有消息的列表,然后从该列表中选择随机消息作为消息发送?,python,python-3.x,discord,discord.py,discord.py-rewrite,Python,Python 3.x,Discord,Discord.py,Discord.py Rewrite,之前我试着在StackOverflow上寻找这个问题的答案,结果发现。我在Python3.7的discord.py rewrite 1.5.0上试用了它。它应该从我发送它的频道中给我一条随机消息,并作为消息发送 因此,如果通道中的许多消息中有一条消息,如: 给我带来痛苦,先生 它将发送该消息,但选择发送的消息将在每次运行该命令时随机化 这是我的密码:(出于安全原因,频道匿名) 它给我的不是一条随机消息,而是一堆与发送消息的公会/频道/作者相关的垃圾信息。这虽然有帮助,但不是我想要的 如果有帮助的

之前我试着在StackOverflow上寻找这个问题的答案,结果发现。我在Python3.7的discord.py rewrite 1.5.0上试用了它。它应该从我发送它的频道中给我一条随机消息,并作为消息发送

因此,如果通道中的许多消息中有一条消息,如:

给我带来痛苦,先生

它将发送该消息,但选择发送的消息将在每次运行该命令时随机化

这是我的密码:(出于安全原因,频道匿名)

它给我的不是一条随机消息,而是一堆与发送消息的公会/频道/作者相关的垃圾信息。这虽然有帮助,但不是我想要的

如果有帮助的话,下面是gubbins(不过匿名):


(抱歉,如果我不将其设置为代码,它将无法正确显示)


我不知道它为什么这样做。我知道我做错了什么,但我不知道如何修复它。我是一个业余程序员,所以我可能遗漏了一些非常明显的东西。我正在使用client.command()来编写代码,以防您感到奇怪。

快速浏览discord.py的文档,它似乎返回了一个列表。显示它有一个,听起来像你想要的:

内容

消息的实际内容

您的代码导致整个消息对象转换为字符串,这就是为什么您看到内部表示的各个部分(
category\u id
discriminator
,等等)。请尝试以下方法:

wait ctx.send(f“{random.choice(messages.content}”)
channel = client.get_channel(123456789101112131)
messages = await channel.history(limit=200).flatten()
await ctx.send(f"{random.choice(messages)}")
<Message id=42365698915833262 channel=<TextChannel id=123456789101112131 name='general' position=1 nsfw=False news=False category_id=None> type=<MessageType.default: 0> author=<Member id=481541758625098605 name='me' discriminator='4444' bot=False nick=None guild=<Guild id=111222333444555666 name='GUILDNAME' shard_id=None chunked=True member_count=4>> flags=<MessageFlags value=0>>