我想使用 TwitchIO 与另一个程序中的 Twitch 聊天进行对话,而不需要使用 Bot 的 run() 劫持主循环。
此处的官方文档(https://twitchio.readthedocs.io/en/latest/quickstart.html)显示了正在运行的代码,如下所示:
from twitchio.ext import commands
class Bot(commands.Bot):
def __init__(self):
# Initialise our Bot with our access token, prefix and a list of channels to join on boot...
# prefix can be a callable, which returns a list of strings or a string...
# initial_channels can also be a callable which returns a list of strings...
super().__init__(token='ACCESS_TOKEN', prefix='?', initial_channels=['...'])
async def event_ready(self):
# Notify us when everything is ready!
# We are logged in and ready to chat and use commands...
print(f'Logged in as | {self.nick}')
@commands.command()
async def hello(self, ctx: commands.Context):
# Here we have a command hello, we can invoke our command with our prefix and command name
# e.g ?hello
# We can also give our commands aliases (different names) to invoke with.
# Send a hello back!
# Sending a reply back to the channel is easy... Below is an example.
await ctx.send(f'Hello {ctx.author.name}!')
bot = Bot()
bot.run()
# bot.run() is blocking and will stop execution of any below code here until stopped or closed.
但正如最后一行所说,run() 将阻止执行。
还有其他不阻塞的运行方式吗?像(编造的)之类的东西
bot.poll()
这需要在我的程序的主循环中定期运行?
您是否添加了更多使用 Bot 类的代码?如果没有,我建议只进行 2 个过程。
最简单的方法就是创建 2 个 python 文件并同时运行它们。
如果您确实必须在同一个程序上运行它们,我会考虑并行处理。下次您发布问题时,我建议将“其他程序”代码放入问题中,这样人们就不必做出这些假设。
#ps 如果您需要在同一个程序中运行它们,请编辑您的问题以显示您需要一起运行的代码,我会再看一下