Mercurial > prosody-modules
annotate mod_muc_slow_mode/README.markdown @ 5951:d6a695abb33c
mod_ping_muc: Delay ping a configurable amount of time
If a server is restarting, checking immediately before it has a chance
to complete its restart and get ready would often fail, preventing the
possibility of transparent restarts as supported by Prosody's mod_muc.
Reconnecting immediately when a connection is closed for being idle, or
because the remote server is trying to reclaim some resources, is also
counter-productive as the connection may fail.
Also, if there is some Internet routing problem affecting s2s, it may
help to wait a bit before checking, in case the problem resolved itself
in the mean time.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 11 Aug 2024 16:10:24 +0200 |
parents | 22effe87fed2 |
children |
rev | line source |
---|---|
5939
d7c207964aa5
mod_muc_slow_mode: initial commit.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
1 <!-- |
d7c207964aa5
mod_muc_slow_mode: initial commit.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
2 SPDX-FileCopyrightText: 2024 John Livingston <https://www.john-livingston.fr/> |
d7c207964aa5
mod_muc_slow_mode: initial commit.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
3 SPDX-License-Identifier: AGPL-3.0-only |
d7c207964aa5
mod_muc_slow_mode: initial commit.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
4 --> |
d7c207964aa5
mod_muc_slow_mode: initial commit.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
5 # mod_muc_slow_mode |
d7c207964aa5
mod_muc_slow_mode: initial commit.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
6 |
d7c207964aa5
mod_muc_slow_mode: initial commit.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
7 This module is a custom module that allows slow mode for MUC rooms. |
d7c207964aa5
mod_muc_slow_mode: initial commit.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
8 |
5940
83787415fc8d
mod_muc_slow_mode: update readme file.
John Livingston <git@john-livingston.fr>
parents:
5939
diff
changeset
|
9 This module is under AGPL-3.0 license. |
5939
d7c207964aa5
mod_muc_slow_mode: initial commit.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
10 |
5947
22effe87fed2
mod_muc_slow_mode: adding more context in the README.
John Livingston <git@john-livingston.fr>
parents:
5940
diff
changeset
|
11 There will probably be a XEP proposal for this module behaviour. |
22effe87fed2
mod_muc_slow_mode: adding more context in the README.
John Livingston <git@john-livingston.fr>
parents:
5940
diff
changeset
|
12 |
22effe87fed2
mod_muc_slow_mode: adding more context in the README.
John Livingston <git@john-livingston.fr>
parents:
5940
diff
changeset
|
13 ## Slow mode definition |
22effe87fed2
mod_muc_slow_mode: adding more context in the README.
John Livingston <git@john-livingston.fr>
parents:
5940
diff
changeset
|
14 |
22effe87fed2
mod_muc_slow_mode: adding more context in the README.
John Livingston <git@john-livingston.fr>
parents:
5940
diff
changeset
|
15 There are some contexts in which you want to be able to rate limit MUC messages. This could have multiple motivations: avoid flooding, garantee a better readability of the room when there are hundreds of active users, … |
22effe87fed2
mod_muc_slow_mode: adding more context in the README.
John Livingston <git@john-livingston.fr>
parents:
5940
diff
changeset
|
16 |
22effe87fed2
mod_muc_slow_mode: adding more context in the README.
John Livingston <git@john-livingston.fr>
parents:
5940
diff
changeset
|
17 This module propose a new option for MUC rooms, allowing room owners to fix a duration that users must wait between two messages. |
22effe87fed2
mod_muc_slow_mode: adding more context in the README.
John Livingston <git@john-livingston.fr>
parents:
5940
diff
changeset
|
18 |
22effe87fed2
mod_muc_slow_mode: adding more context in the README.
John Livingston <git@john-livingston.fr>
parents:
5940
diff
changeset
|
19 There is a draft XEP for this feature, that you can find here: https://github.com/JohnXLivingston/xeps/blob/xep-slow-mode/xep-slow-mode.xml |
22effe87fed2
mod_muc_slow_mode: adding more context in the README.
John Livingston <git@john-livingston.fr>
parents:
5940
diff
changeset
|
20 |
22effe87fed2
mod_muc_slow_mode: adding more context in the README.
John Livingston <git@john-livingston.fr>
parents:
5940
diff
changeset
|
21 There is a more human-readable version of this XEP here: https://livingston.frama.io/peertube-plugin-livechat/technical/slow_mode/ |
5939
d7c207964aa5
mod_muc_slow_mode: initial commit.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
22 |
d7c207964aa5
mod_muc_slow_mode: initial commit.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
23 ## Configuration |
d7c207964aa5
mod_muc_slow_mode: initial commit.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
24 |
d7c207964aa5
mod_muc_slow_mode: initial commit.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
25 Just enable the module on your MUC component. |
d7c207964aa5
mod_muc_slow_mode: initial commit.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
26 The feature will be accessible throught the room configuration form. |
d7c207964aa5
mod_muc_slow_mode: initial commit.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
27 |
d7c207964aa5
mod_muc_slow_mode: initial commit.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
28 Depending on your application, it is possible that the slow mode is more important than other fields (for example for a video streaming service). |
d7c207964aa5
mod_muc_slow_mode: initial commit.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
29 The position in the room config form can be changed be setting the option `slow_mode_duration_form_position`. |
d7c207964aa5
mod_muc_slow_mode: initial commit.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
30 This value will be passed as priority for the "muc-config-form" hook. |
d7c207964aa5
mod_muc_slow_mode: initial commit.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
31 By default, the field will be between muc#roomconfig_changesubject and muc#roomconfig_moderatedroom. |
d7c207964aa5
mod_muc_slow_mode: initial commit.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
32 |
d7c207964aa5
mod_muc_slow_mode: initial commit.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
33 ``` lua |
d7c207964aa5
mod_muc_slow_mode: initial commit.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
34 VirtualHost "muc.example.com" |
d7c207964aa5
mod_muc_slow_mode: initial commit.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
35 modules_enabled = { "muc_slow_mode" } |
d7c207964aa5
mod_muc_slow_mode: initial commit.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
36 slow_mode_duration_form_position = 96 |
d7c207964aa5
mod_muc_slow_mode: initial commit.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
37 ``` |