annotate mod_muc_moderation_delay/mod_muc_moderation_delay.lua @ 6092:bd3ff802d883

mod_anti_spam: Fix another traceback for origin sessions without an IP This is likely to be the case for stanzas originating from local hosts, for example (so not true s2s). It should be safe to bypass the IP check for those.
author Matthew Wild <mwild1@gmail.com>
date Sat, 28 Dec 2024 21:02:08 +0000
parents 959382fac20c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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);