twisted.words.protocols.irc モジュールを使って IRC ボットを作ろうとしています。
ボットはチャネルからのメッセージを解析し、コマンド文字列を解析します。
bot が whois コマンドを送信してニックネームを特定する必要がある場合を除いて、すべて正常に動作します。whois 応答は、privmsg メソッド (解析を行っているメソッド) が戻るまで処理されません。
例:
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) の後にボットに返信を待たせる方法はありますか?
おそらくスレッドを使用してください(私はそれらの経験がありません)。