Próbuję napisać funkcję, która wydrukuje listy nicków w kanale IRC do kanału za pomocą Twisted Python. Jak mam to zrobic? Przeczytałem dokumentację API i widziałem tylko jedno pytanie podobne do mojego na tej stronie, ale tak naprawdę nie odpowiada na moje pytanie. Gdybym wiedział, jak zdobyć listę użytkowników (lub cokolwiek innego, co Twisted rozpoznaje jako), mógłbym po prostu powtórzyć listę przy użyciu pętli for, ale nie wiem, jak uzyskać tę listę.Lista użytkowników w kanale IRC za pomocą Twisted Python IRC framework
6
A
Odpowiedz
6
Połączony przykład, który wydaje się być taki sam, używa WHO
, innego polecenia, innego celu. Prawidłowym sposobem jest użycie NAMES
.
Rozszerzony IRCClient do obsługi polecenia names.
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]
przykład:
def got_names(nicklist):
log.msg(nicklist)
self.names("#some channel").addCallback(got_names)
Powiązane problemy
- 1. Biblioteka IRC w C#
- 2. Windows Phone 8.1 IRC
- 3. Szukam klienta IRC JavaScript
- 4. .net 2.0 składnik IRC
- 5. Biblioteka IRC Objective-C/iPhone'a
- 6. Wstawianie podziały wierszy do wiadomości IRC
- 7. Najlepszy serwer IRC do programowania kanałów?
- 8. Jaka jest najlepsza sieć IRC dla języka Java (#java)?
- 9. Android Biuro IRC Godziny Pytanie o Android Bluetooth RSSI
- 10. Zarządzanie wieloma połączeniami klientów Twisted
- 11. Ograniczanie przepustowości za pomocą Twisted
- 12. Database for Python Twisted
- 13. Lista zainstalowanych pakietów na kanale
- 14. Python Twisted klient WebSocket
- 15. Jak spakować program Twisted za pomocą py2exe?
- 16. Jak serializować grupy użytkowników za pomocą Django-Rest-Framework
- 17. Jak zawinąć klasę C++ za pomocą Cythona?
- 18. Python twisted reaktor niezdefiniowana zmienna
- 19. Jak uruchamiasz aplikację Twisted przez Python (zamiast poprzez Twisted)?
- 20. Lista zalogowanych użytkowników w Wordpressie?
- 21. Lista użytkowników PostgreSQL
- 22. Jak ustawić strefę czasową w kanale iCal za pomocą DDay.iCal?
- 23. SQL Azure: lista wszystkich użytkowników i użytkowników
- 24. Używaj portów szeregowych RFC2217 z Twisted Python?
- 25. Jak utworzyć dwukierunkowe przesyłanie wiadomości za pomocą AMP w Twisted/Python
- 26. Klient i serwer UDP z Twisted Python
- 27. Jak przyspieszyć ten Twisted Python Proxy?
- 28. Biblioteka klienta Python Jabber/XMPP dla Twisted
- 29. System.OutOfMemoryException za pomocą Entity Framework?
- 30. jak śledzić użytkowników za pomocą websocket ++ 0.3X
naiwniaczek http://stackoverflow.com/questions/5305050/how-to-use-twisted-to-get-an-irc-channels-user-list –
To nie jest dupek, wspomniałem nawet o tym pytaniu, które podałeś w związku, ponieważ NIE JEST to, co próbuję zrobić i NIE jest pomocne. – paul
Jest to w rzeczywistości dupę tego drugiego pytania; Jestem ciekawy, dlaczego uważasz, że tak nie jest. – Glyph