我正在尝试使用 twisted.words.protocols.irc 模块制作 IRC 机器人。
该机器人将解析来自通道的消息并将它们解析为命令字符串。
一切正常,除非我需要机器人通过发送 whois 命令来识别昵称。在 privmsg 方法(我从中进行解析的方法)返回之前,不会处理 whois 回复。
例子:
from twisted.words.protocols import irc
class MyBot(irc.IRClient):
..........
def privmsg(self, user, channel, msg):
"""This method is called when the client recieves a message"""
if msg.startswith(':whois '):
nick = msg.split()[1]
self.whois(nick)
print(self.whoislist)
def irc_RPL_WHOISCHANNELS(self, prefix, params):
"""This method is called when the client recieves a reply for whois"""
self.whoislist[prefix] = params
有没有办法让机器人在 self.whois(nick) 之后等待回复?
也许使用线程(我没有任何经验)。