我正在设置一个 python TwitchIO聊天机器人。入门示例是这样的:
async def event_message(self, message):
print(message.content)
await self.handle_commands(message)
@commands.command(name='test')
async def my_command(self, ctx):
await ctx.send(f'Hello {ctx.author.name}!')
如果传入消息是命令(例如 !test
),则使用 ctx.send()
将消息发送回 channel 。
我希望可以选择在收到任何消息时将消息发送回 channel (基于 come 标准),而不仅仅是命令。例如:
async def event_message(self, message):
print(message.content)
if SOMETHING:
SEND_MESSAGE_HERE
await self.handle_commands(message)
我不知道如何执行某种类型的 .send
来实现这一点。这个答案:TwitchIO: How to send a chat message?显示这个:
chan = bot.get_channel("channelname")
loop = asyncio.get_event_loop()
loop.create_task(chan.send("Send this message"))
我试过了,机器人立即发送了大量消息并超时了一个小时。
所以,问题是:如何将消息发送回 event_message
中的 channel
最佳答案
命令向您传递一个Context
(Messageable
的一个实例,它定义了send()
)。 Channel
也是一个Messageable
,因此它有一个send()
。因此,如果您的 Bot
实例是 bot
:
await bot.connected_channels[0].send('...')
将向机器人连接的第一个 channel 发送消息。
关于python - 如何在 TwitchIO 中发送不是对命令的响应的消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67348181/