내가 가이드 라인으로 여기에 정보를 사용하여 몇 가지 코드를 작성했습니다에서 목록에 액세스 할파이썬 : 트위스트 : 콜백
List users in IRC channel using Twisted Python IRC framework
내가 성공적으로 콘솔에 이름 목록을 로그인 할 수있는 방법 그러나 지금까지는 더 이상 작동하지 않기 위해 을 검색 할 수 없었습니다.
class Alfred(irc.IRCClient):
""" An IRC bot """
# Voodoo magic for names
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]
# End of voodoo magic
def get_names(self, nicklist):
# Log the output to the log
log.msg(nicklist)
def has_op(self, channel, user):
self.names('#' + channel).addCallback(self.get_names)
def change_mode(self, channel, user, msg):
target = msg[5:-3]
params = [channel, '+o']
self.has_op(channel, user)
self.mode(channel, True, '+o', user=target)
내가 달성하고자하는 소위 nicklist의 보류를 얻을 has_op 함수 내이다 : 다음은이 문제와 관련된 코드의 발췌 한 것입니다. 지금까지 나는 시행 착오 접근법을 사용하여이를 수행 할 수 없었습니다. 합리적인 장소에서 print 및 return 문을 사용하려고 시도했지만 어디에서 이렇게 또는 인스턴스/속성 오류가 출력되지 않았습니까? 분명히, 나는 잃어 버렸고, 나는 약간의 지침이 정말로 필요하다.
덕분에,이 정말로 도움이되었다. 이것에서 나는 기초를 놓을 수있다 나는 앞으로 일하기를 계속할 필요가있다 그래서 건배! 나의 의도를 밝혀내는 명성, 즉 내 의도는 무엇인지. –