Delay send & group message?

In a chat, some users writes several messages in a row:

  1. Hello
  2. World
  3. How are you?
  4. Fine?

Delta Chat should wait 1 or 2s before grouping these messages in a single mail.

2 Likes

well this is actually a good idea, don’t know if waiting some seconds is a good idea, can make feel DC slow, but at least this could be done for messages that aren’t sent yet, in my slow network I usually write like 4 messages and the first one still isn’t sent, some times can take more than 30 seconds, also sometimes people write several messages offline and then connect to send it all, so it would be nice if at the time the SMTP thread will peek the next message to send, it just join all the messages in the queue and send it as one.
Since the headers overload that Delta Chat have is really “big”, this definitely can make the difference and save some bandwidth and/or money :slight_smile:

1 Like

adding a blank line separating each independent message in paragraphs.
this should be done only for text messages, messages with attachments should be better not join with the rest.

well, this is more complex than it seems, message’s sent date is an issue, some workarounds are:

  • to use the date of the first message (simple but pretty bad solution)
  • insert some formatting with a time stamp to separate the messages, and show them as separated messages in Delta Chat, but probably a bit ugly for people using another MUA. (elegant for DC but maybe a bit annoying for other MUA if the formatting is ugly)

maybe the cleanest way to wrap several messages into one mail is to add a mime-part for each message.

and yes, i would also not delay sending but do this grouping only if mails are not sent for whatever reason.

2 Likes

@r10s +1000

A other solution, goup messages when the next message is from the same person. But group it only in the DC screen and send the messages seperatly. Additional with a time tracker. 90 secunds for the same message and after make a new message “bubble”

1 Like

Why? I mean, it would only be done for messages that are sent at once anyway, wouldn’t it? I mean, won’t the sent date be the same for all messages anyway?

In each case, I wouldn’t say that it is a bad solution to use the date of the first or last message. At least, I do not think that anything else is worth the effort.

the date will not be the same, if network is faster, the messages will be sent independently because there will be no time to accumulate them, messages will be accumulated on slow networks, where you can write several messages before first one is sent

IMO the reason for why the users send several short messages instead a long one, is because they want the info get quickly delivered while they type more, so it doesn’t make sense wait some seconds to force the user to send all messages at once, if they want them sent in one single message, they can just write it and send it in one message, when only makes sense this is when there are several messages in the queue and it will be actually faster to send them all together.

2 Likes

Ah, OK, now I understand. My understanding of “sent time” was “When was the message sent to the email server”, not “When did the user press Send”.

Anyway, I still do not think that you should put too much effort into different sending times for messages that are sent as one email.

for users just wanting to chat and have fun this may not be important, but maybe for professionals, journalists and people at risk this info could be useful,
if I sent “hey!! cops coming north way” I guess it is useful to you to know that message was sent 10min ago!!! even if the message was actually delivered a minute ago.
anyway I don’t know anything about people at risk so don’t really know if this is useful for them…

But it would only be a problem if:
Someone like you describe uses DC
They type a time-critical message which can’t be sent
10 min later they type another message which is NOT “Nevermind” or similar
Then both messages are sent as one.

I wouldn’t put much effort into this as this is unlikely…

having the time of every message is simply nice to have, if this where terrific difficult to do we should then just use the date of the first one, but I think it is not the case, anyway lets just wait for this to start being developed and the problems will pop up by themself

I like this idea, and I understand the concerns about delaying messages. What about this solution?

When I hit the arrow, DC waits for X seconds, maybe 20 seconds. There is a countdown clock, like a circle that changes color, around the arrow. If I hit the arrow a second time, then it sends right away. This addresses the concern about delays.

IF I start typing within those 20 seconds, the send is aborted. It doesn’t send, the countdown disappears. AND it lets me edit the message that I already pressed the arrow on.

IF I don’t start typing within 20 seconds, it sends the message normally.

I would take that solution and put it behind an optional setting.

1 Like

I would not wait 20 seconds with sending the message, usually emails take only about 2-10s to be received and this would make DC feel a lot slower. Actually, I would not delay messages at all.

1 Like

that’s the best option for me, @Hocuri is right, DC would stop being “instant” messaging if there’s a 20 (or even 5) seconds wait between messages.
However, a shorter wait e.g. 2 sec would be helpful for detecting mistakes or something like that.

2 Likes