あなたが同じだと思われるリンクされた例はWHO
、別のコマンド、別の目的を使用します。正しい方法はNAMES
です。
namesコマンドをサポートする拡張IRCClient。
from twisted.words.protocols import irc
from twisted.internet import defer
class NamesIRCClient(irc.IRCClient):
def __init__(self, *args, **kwargs):
self._namescallback = {}
def names(self, channel):
channel = channel.lower()
d = defer.Deferred()
if channel not in self._namescallback:
self._namescallback[channel] = ([], [])
self._namescallback[channel][0].append(d)
self.sendLine("NAMES %s" % channel)
return d
def irc_RPL_NAMREPLY(self, prefix, params):
channel = params[2].lower()
nicklist = params[3].split(' ')
if channel not in self._namescallback:
return
n = self._namescallback[channel][1]
n += nicklist
def irc_RPL_ENDOFNAMES(self, prefix, params):
channel = params[1].lower()
if channel not in self._namescallback:
return
callbacks, namelist = self._namescallback[channel]
for cb in callbacks:
cb.callback(namelist)
del self._namescallback[channel]
例:
def got_names(nicklist):
log.msg(nicklist)
self.names("#some channel").addCallback(got_names)
デュープhttp://stackoverflow.com/questions/5305050/how-to-use-twisted-to-get-an-irc-channels-user-list –
これは詐欺ではない、私はあなたが質問にリンクしたその質問に言及しています。なぜなら、私がやろうとしているものではなく、役に立たないからです。 – paul
それは実際には、他の質問のdupです。私はあなたがなぜそうではないと思うのか不思議です。 – Glyph