Mercurial > prosody-modules
annotate mod_muc_slow_mode/README.markdown @ 5962:a86720654fb9
mod_muc_moderation_delay: Fix lua 5.3/5.4 compatibility.
author | John Livingston <git@john-livingston.fr> |
---|---|
date | Tue, 10 Sep 2024 18:03:03 +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 ``` |