Comments (13)
👍
from ircv3-specifications.
This looks like an exact use case for BATCH with a (e.g.) "REPLAY" batch type, opinions?
from ircv3-specifications.
Hm, actually, now we have a choice “new batch type” vs. “new message tag” for every new feature, not limited to replay…
Maybe need to write some guideline when which of them should be used?
from ircv3-specifications.
I know very little about batch types vs message tags, but it seems to me that the batch approach assumes that there is some benefit for the client to process all the batch in one go at batch end.
There is no need for a client to delay processing till the end of a batch. This, the mechanics of a batch would be used as a grouped message tag.
from ircv3-specifications.
@jaingaurav #86 should fix that.
@attilamolnar if client is free to ignore batch types, ignored (e.g.) "REPLAY" batch type won't help much. So probably both batch and tag are needed here.
from ircv3-specifications.
@DarthGandalf If the client cares about which messages are being replayed why would it ignore it?
from ircv3-specifications.
Ok, so if client requested the capability, the client MUST take this batch type into account
from ircv3-specifications.
Okay I think I finally understand the point of using batch. It allows the client to know when the playback is complete which is visually displayed in certain clients.
@DarthGandalf So does that imply that supporting REPLAY requires a client to support BATCH type (even if it simply ignores them?).
from ircv3-specifications.
@jaingaurav if to do it this way, if client announces that is supports replay (via cap), server will add joins to buffer, and client needs to understand that joins inside this batch type are not real. If client doesn't announce that it supports replay, server puts only privmsg into the batch.
from ircv3-specifications.
@DarthGandalf Okay, I guess my argument for using a REPLAY message-tag instead of a batch type is that it would work for clients that do not yet support the batch feature (but do support message tags). However, given your recent changes to the batch feature I think the batch tag works well.
The only other concern I have for using a batch type vs a message tag would be that batch types do not seem to support nesting. For example, you could not include a NETJOIN batch within the replay batch.
from ircv3-specifications.
It supports nesting... See the example in batch spec
from ircv3-specifications.
I'm not sure what to do with clients which support tags, but not batches...
from ircv3-specifications.
The chathistory batch type which was added recently by @SaberUK covers this entirely.
from ircv3-specifications.
Related Issues (20)
- userip-tag and userhost-tag HOT 21
- Edit Readme
- figure out a license HOT 10
- ratify CHATHISTORY HOT 44
- CHATHISTORY: consider adding a target to retrieve highlights HOT 8
- CHATHISTORY: consider an API to discover DM correspondents HOT 8
- A capability for enabling receiving arbitrary standard replies HOT 3
- ISUPPORT UTF8ONLY is not backwards-compatible. HOT 10
- BOT flag lacks notification of change HOT 5
- sasl spec should clarify that AUTHENTICATE is a normal IRC message HOT 2
- CAP DEL undefined behavior
- oper tag HOT 1
- Unclear how servers should send cap updates HOT 2
- Standardize pre-welcome FAIL ACCOUNT_REQUIRED HOT 3
- Client-tag for specifying in which shared channel a private NOTICE should be displayed HOT 5
- CVE-2022-2663 defence-in-depth: Specify CTCP PING character limits HOT 4
- CHATHISTORY: Clarify a limit of 0 in messages HOT 7
- Multiline messages: Clarify what counts towards max-bytes and what doesn't
- sasl-3.1: Mention size limit of incoming SASL authentication messages HOT 1
- Chat history + Channel rename HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ircv3-specifications.