-
Notifications
You must be signed in to change notification settings - Fork 79
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
Event playback (JOIN/PART/QUIT/NICK/etc as part of chathistory) #293
Comments
If I could put forth a rough suggestion, perhaps something along these lines would work?
|
Is the batch guaranteed to be limited to a single channel? (Some events, like QUIT or NICK, have a channel parameter.) |
@grawity in the case of chathistory, yeah, there's a target parameter. @DanielOaks That would be the second suggestion from my first post. I'm slightly concerned about the possible implementation bugs that lead to the event getting accidentally processed. Not sure if other clients share this concern. Not even sure if it's a real concern. Also: We really should enumerate and limit the allowed verbs. |
As @DanielOaks said, this seems like the best way to go about it. The additional events would only be sent to the client if the capability is supported and it would be the sole responsibility of the client to properly display the results.
Would there be any issues with using a custom event type and specifying what it represents in a message-tag? This could potentially eliminate clients from processing the events unless it can handle an Edit: Disregard this comment. Misunderstanding cleared up below. |
That seems a bit forced... The event type is already a core, required parameter to
No it wouldn't. The clients would still be checking the event type the same way (throwing it at a case..in or if..elif or a dispatch table) no matter where they obtain the parameter from. |
(this is probably going to sound nitpicky, just want to be clear any confusion)
Note that the bullet you quoted (1) is slightly different from what dan suggested (2). That's the one with a message tag, not the one that relies on the batch.
I think there may be a misunderstanding here, what I said about accidentally processing the event applies to bullets 1 and 2 and dan's version of 2 of regular verbs wrapped in a batch ( |
@dequis Misunderstanding cleared up - disregard my original comment.
Seconded. If possible, the original message should be left "as-is" and additional tags added if needed. The What tags would be needed for this? If the client supports the capability, the use of a |
Merged in #393, this can be closed. |
The chathistory batch is currently limited to PRIVMSG and NOTICE and has no way to some events because they may be processed by the client in a way that affects the present channel state.
And I'm probably missing something. Other pieces of information that may be missing in a replay are:
@
before nicks)Not sure about the importance of these last few.
From #156, describing the issue:
See also current discussion at #292
Some ideas:
A new capability and a message tag marking the event as playback. The events would be sent the same way, but clients are expected to avoid modifying the state and only display the message.
Same as above, but rely on the chathistory batch to mark the event as playback.
A new capability to allow sending a new verb that wraps the original event. For example:
:source EVENT JOIN #channel
.Might make it easier for client developers to make it a purely visual thing. This is my favorite idea so far.
No new capabilities, but send buffextras-style PRIVMSGs with message tags describing the event in a machine-readable way (if the message tags cap is enabled).
Would be compatible with current implementations of chathistory that display a few messages before the user joined. Allows clients to be very lazy. But there's no real need to think in terms of legacy compatibility this time.
Complementing any of the above, send extra user metadata like prefix as message tags applying to replayed privmsgs.
The text was updated successfully, but these errors were encountered: