Streaming platforms like twitch have «slow modes», to prevent users to flood. This can be a very usefull tool.
Could be the base for a new XEP.
This development would include:
[x] Prosody module to rate limit the number of messages per user (note: mod_muc_limits has a rate limit option, but not per user). Send «bounce» messages if users did not wait enough (for users connected with XMPP clients, or for users cheating in ConverseJS)
[x] enable/disable slow mode per room (in the room config, by adding a field)
[x] default slow mode value in the channel options
[x] DISCO info for the slow mode, so clients could detect the feature, and take it into account
[x] ConverseJS: display a message with the delay (on startup, and when the delay change)
[x] ConverseJS: find a hack to localize the message
[x] ConverseJS: disable the message field for X seconds after sending a message
[x] user documentation
[x] add links to documentation in the Peertube interface
[x] Bug: only count text messages, not "chatstate" messages (XMPP client can send such message when the user gives the focus to the room)
[x] Better UI for the infobox, so we don't think the input field is just beneath
[ ] propose a XEP, to standardize this feature
[ ] propose implementation in ConverseJS upstream
[ ] propose implementation in prosody-modules repository
Streaming platforms like twitch have «slow modes», to prevent users to flood. This can be a very usefull tool.
Could be the base for a new XEP.
This development would include:
PS: original issue: https://github.com/JohnXLivingston/peertube-plugin-livechat/issues/105
Reference: NlNet-task-13