[Twisted-Python] implementing NAMES in IRC

Tristan Seligmann mithrandi at mithrandi.net
Tue Sep 11 04:49:55 MDT 2012


On Tue, Sep 11, 2012 at 6:05 AM, Glyph <glyph at twistedmatrix.com> wrote:
> Such a bug may already exist - if you wouldn't mind, would you search for
> it, and if you can't find it, file a new one?

I don't know if there's an existing bug or not, but implementing a
names() method is problematic. The natural API would be something like
names('#foo') -> Deferred firing with a list of names in the channel.
The difficulty in implementing this comes from the fact that there are
two possible results from issuing a NAMES command on IRC: a serious of
zero or more RPL_NAMREPLY messages followed by an RPL_ENDOFNAMES
message, *or* any error message the IRC server feels like. There are a
number of partial workarounds for this, involving various combinations
of queues, timeouts, and unreliable detection of responses, but none
of them seem particularly satisfactory to me.

(On the other hand, a method that just sends NAMES #foo without any
response handling would be pretty straightforward to implement, maybe
that's what you meant?)
-- 
mithrandi, i Ainil en-Balandor, a faer Ambar




More information about the Twisted-Python mailing list