J. *_*Doe 8 python multithreading python-asyncio discord discord.py
我正在使用 discord.py 库在 Python 3.6 中开发 Discord 机器人,并且在尝试从我创建的线程向特定通道发送消息时遇到问题。
基本上,我有一些线程监视网站,并且我想调用一个函数(我正在传递给线程),当我注意到网站上的更改时,该函数将消息发送到一个特定的频道。
我最初尝试在client.send_message()没有 async/await 的情况下直接调用但它根本不起作用,所以我编写了发送消息的 async/await 函数(测试它并且它有效)但是我再次从线程调用它时遇到问题,所以我结束了将机器人客户端传递给我的线程并调用self.bot_client.loop.create_task(self.sendmsgfunction(msg)). 这是可行的,但与机器人使用常规@bot.event功能回复消息所需的时间相比,它非常慢(发送消息大约需要 15 秒,而且这可能不是正确的发送方式)。
我已经尝试使用 asyncio 创建一个事件循环,然后调用该函数,但最终还是出现了错误。
有任何想法吗?
小智 -7
如果你想向特定通道发送消息,首先你应该获取通道对象。
channel = discord.utils.get(ctx.guild.channels, id=channel_id_here)
Run Code Online (Sandbox Code Playgroud)
然后你就可以做
await channel.send()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1624 次 |
| 最近记录: |