Mercurial > prosody-modules
annotate mod_muc_moderation_delay/mod_muc_moderation_delay.lua @ 5938:959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
author | John Livingston <git@john-livingston.fr> |
---|---|
date | Fri, 26 Jul 2024 15:36:05 +0200 |
parents | |
children |
rev | line source |
---|---|
5938
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
1 -- mod_muc_moderation_delay |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
2 -- |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
3 -- SPDX-FileCopyrightText: 2024 John Livingston <https://www.john-livingston.fr/> |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
4 -- SPDX-License-Identifier: AGPL-3.0-only |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
5 -- |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
6 -- This file is AGPL-v3 licensed. |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
7 -- Please see the Peertube livechat plugin copyright information. |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
8 -- https://livingston.frama.io/peertube-plugin-livechat/credits/ |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
9 -- |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
10 |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
11 local add_disco_form = module:require("config").add_disco_form; |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
12 local config_submitted = module:require("config").config_submitted; |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
13 local add_form_option = module:require("config").add_form_option; |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
14 local handle_broadcast_message = module:require("delay").handle_broadcast_message; |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
15 |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
16 -- form_position: the position in the room config form (this value will be passed as priority for the "muc-config-form" hook). |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
17 -- By default, field will be between muc#roomconfig_changesubject and muc#roomconfig_moderatedroom |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
18 local form_position = module:get_option_number("moderation_delay_form_position") or 80-2; |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
19 |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
20 -- Plugin dependencies |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
21 local mod_muc = module:depends "muc"; |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
22 |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
23 -- muc-disco and muc-config to configure the feature: |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
24 module:hook("muc-disco#info", add_disco_form); |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
25 module:hook("muc-config-submitted/muc#roomconfig_moderation_delay", config_submitted); |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
26 module:hook("muc-config-form", add_form_option, form_position); |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
27 |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
28 -- intercept muc-broadcast-message, and broadcast with delay if required. |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
29 -- Priority is negative, as we want it to be the last handler. |
959382fac20c
mod_muc_moderation_delay: first commit to prosody-modules.
John Livingston <git@john-livingston.fr>
parents:
diff
changeset
|
30 module:hook("muc-broadcast-message", handle_broadcast_message, -1000); |