Tôi đang cố gắng viết một hàm sẽ in danh sách các nút trong kênh IRC tới kênh bằng cách sử dụng Twisted Python. Làm thế nào để tôi làm điều này? Tôi đã đọc tài liệu API và tôi chỉ thấy một câu hỏi tương tự với câu hỏi của tôi trên trang web này, nhưng nó không thực sự trả lời câu hỏi của tôi. Nếu tôi biết làm thế nào để có được danh sách người dùng (hoặc bất cứ điều gì nó được Twisted nhận ra nó như), tôi chỉ đơn giản có thể lặp lại danh sách bằng cách sử dụng một vòng lặp for, nhưng tôi không biết làm thế nào để có được danh sách này.Liệt kê người dùng trong kênh IRC bằng cách sử dụng khung IRC Xoắn Python
6
A
Trả lời
6
Ví dụ được liên kết mà bạn cho là giống nhau, sử dụng WHO
, lệnh khác nhau, mục đích khác nhau. Cách chính xác là sử dụng NAMES
.
Mở rộng IRCClient để hỗ trợ lệnh tên.
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]
Ví dụ:
def got_names(nicklist):
log.msg(nicklist)
self.names("#some channel").addCallback(got_names)
Các vấn đề liên quan
- 1. IRC Python Bot: Best Way
- 2. Ví dụ tốt về máy chủ IRC xoắn?
- 3. Kênh IRC dành cho nhà phát triển iPhone?
- 4. Chèn ngắt dòng vào thông báo IRC
- 5. Liệt kê tất cả người dùng trong LDAP bằng PHP
- 6. Mercurial - liệt kê đầu của người dùng
- 7. Làm thế nào để tôi lập trình một bot IRC đơn giản trong python?
- 8. Kênh IRC tốt cho lập trình C và mục tiêu Cacao là gì
- 9. Nhập bằng bàn phím sử dụng stdio.StandardIO trong python xoắn
- 10. Tôi làm cách nào để liệt kê người đăng ký đang hoạt động bằng cách sử dụng Faye?
- 11. Máy khách IRC dựa trên trình duyệt có thể liên lạc trực tiếp với máy chủ IRC không?
- 12. Làm cách nào để xóa mã màu được người dùng mIRC sử dụng?
- 13. Liệt kê các gói đã cài đặt trong kênh
- 14. liệt kê Outlook Mailbox bằng cách sử dụng Visual Studio
- 15. Làm tất cả các máy chủ IRC gửi 005 RPL_ISUPPORT?
- 16. Mạng IRC tốt nhất cho Java (#java) là gì?
- 17. thành viên trong nhóm người dùng liệt kê Windows trên hệ thống từ xa bằng C#
- 18. liệt kê tất cả người dùng địa phương sử dụng dịch vụ thư mục
- 19. Tại sao bot IRC của tôi không kết nối?
- 20. Cách tốt nhất để nhúng ứng dụng khách IRC vào trang web
- 21. Cách liệt kê tệp bằng lệnh dos?
- 22. cách vẽ hình xoắn ốc bằng cách sử dụng opengl
- 23. Youtube - Cách tải tất cả video từ kênh người dùng bằng PHP, JavaScript và jQuery?
- 24. Làm cách nào để bạn chỉ liệt kê các biến do người dùng tạo trong PowerShell?
- 25. Chuyển đổi danh sách liệt kê trong Python
- 26. Tạo người dùng trong LDAP bằng cách sử dụng Django
- 27. Tìm một lớp liệt kê bằng cách sử dụng Reflection trong Java
- 28. Liệt kê tất cả hình ảnh trong thư mục bằng cách sử dụng PHP
- 29. Liệt kê các tệp trong một thư mục bằng cách sử dụng html
- 30. Làm cách nào để liệt kê/liệt kê tất cả các ứng dụng đã cài đặt trong Windows XP?
dupe http://stackoverflow.com/questions/5305050/how-to-use-twisted-to-get-an-irc-channels-user-list –
Đây không phải là một sự lừa dối, tôi thậm chí đã đề cập đến câu hỏi mà bạn đã liên kết được đề cập, bởi vì nó KHÔNG phải là điều tôi đang cố gắng làm và KHÔNG hữu ích. – paul
Đó là trong thực tế là một dup của câu hỏi khác; Tôi tò mò tại sao bạn nghĩ rằng nó không phải là. – Glyph