-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for monitor
not fully detected
#143
Comments
I've started a branch with some initial work toward this, along with a fix for a couple of bugs I noticed. I've abstained from including the change to use the up-to-date coroutine syntax on the |
Hm, I was under the impression IRCv3 was feature complete, but iirc wasn't completely stable at time of implementation.
Not sure either, I did go looking for contrary literature that supports the current implementation but came up empty.
Looks like Looks like the correct approach would be to hook into ISUPPORT, possibly deriving In #142 an implementation error in monitor was noted, which contributes to this bug as returning True or False is irrelevant if the monitor messages are never emitted. Looking at |
That sounds like the right course to me.
Yeah, thinking about it, should these even return anything? I don't think other commands do this, so if someone tries to monitor on a server that doesn't support it, the unknown command handler should kick in.
Yeah, I've been fixing the bugs there and working on this on the branch that I linked here. I've gone ahead and converted |
Closed by #144 |
In the discussion for #142, I noticed a small bug with
monitor
andunmonitor
. Pydle checks formonitor
support during capability negotiation, but not inRPL_ISUPPORT
, which the IRCv3 docs currently state is where it should be indicated:To wit, both irc.esper.net and irc.freenode.net support
monitor
and indicate as such with aMONITOR
key inRPL_ISUPPORT
, but do not includemonitor
in theirCAP LS
response. Currently, Pydle incorrectly determines thatmonitor
is not supported on these networks, and as a result attempting tomonitor
orunmonitor
a target will always returnFalse
.I'm not familiar with the entire history of IRCv3's changes, but I'm assuming that perhaps at one point
monitor
was indicated in capability negotiation. However, that doesn't seem to be the case now, and gleaning support based onRPL_ISUPPORT
seems to be the correct way.I can create a pull request to address this, but I'd like to know how it should be done. I'm thinking along the lines of:
on_isupport_monitor
callback and add toself._capabilities
there.monitor
support during capability negotiation, e.g. baseircv3.monitor.MonitoringSupport
off a different parent class?on_isupport_monitor
callback.RPL_ISUPPORT
comes after capability negotiation would ensuremonitor
support is detected and set in Pydle.Thoughts?
The text was updated successfully, but these errors were encountered: