From what I've been gathering, it seems most clients poll /WHO on channels to get information on user statuses for example. As IRCv3 has been developing, most of the newer capabilities such as away-notify and account-notify have been more and more alleviating the need to constantly poll.
One aspect that remains a variable are the user flags. e.g. G for away, H for here, * for oper, d for deaf, etc. While most of the flags have been solved in one way or another, perhaps a capability to announce flag changes would be useful to avoid creating a cap for each edge case (e.g. deaf-notify, oper-notify) while also allowing IRCd developers to freely pass in flags to this extension instead of adding/request flag specific extensions.
For example, KVIrc has an event handler called KviEvent_OnIrcOp. Instead of polling the channel or user with a WHO request, and instead of a specific capability (e.g. oper-notify), this can just (super rough idea) be inferred as follows:
This would introduce my new flag set to clients, in a way similar to account-notify, however in this case there will always be at least one flag (G or H) so a filler parameter for no flags is not needed.
Adding this as an extension would effectively allow client developers to only need to perform /WHO on a channel once as all the additional information thereafter can further be gathered from capabilities. This would also be more beneficial in the fact that performing /WHO only once while letting the IRCd handle the delegation of new information can also (in relative terms, this is still IRC) save bandwidth from the past /WHO constant requests.
From what I've been gathering, it seems most clients poll /WHO on channels to get information on user statuses for example. As IRCv3 has been developing, most of the newer capabilities such as
away-notify
andaccount-notify
have been more and more alleviating the need to constantly poll.One aspect that remains a variable are the user flags. e.g.
G
for away,H
for here,*
for oper,d
for deaf, etc. While most of the flags have been solved in one way or another, perhaps a capability to announce flag changes would be useful to avoid creating a cap for each edge case (e.g.deaf-notify
,oper-notify
) while also allowing IRCd developers to freely pass in flags to this extension instead of adding/request flag specific extensions.For example, KVIrc has an event handler called
KviEvent_OnIrcOp
. Instead of polling the channel or user with a WHO request, and instead of a specific capability (e.g.oper-notify
), this can just (super rough idea) be inferred as follows::staticfox!bs@blindsight.developer.gamesurge FLAGS H*dwgx
This would introduce my new flag set to clients, in a way similar to
account-notify
, however in this case there will always be at least one flag (G
orH
) so a filler parameter for no flags is not needed.Adding this as an extension would effectively allow client developers to only need to perform /WHO on a channel once as all the additional information thereafter can further be gathered from capabilities. This would also be more beneficial in the fact that performing /WHO only once while letting the IRCd handle the delegation of new information can also (in relative terms, this is still IRC) save bandwidth from the past /WHO constant requests.