annotate mod_muc_moderation_delay/mod_muc_moderation_delay.lua @ 6029:cc665f343690

mod_firewall: SUBSCRIBED: Flip subscription check to match documentation The documentation claims that this condition checks whether the recipient is subscribed to the sender. However, it was using the wrong method, and actually checking whether the sender was subscribed to the recipient. A quick poll of folk suggested that the documentation's approach is the right one, so this should fix the code to match the documentation. This should also fix the bundled anti-spam rules from blocking presence from JIDs that you subscribe do (but don't have a mutual subscription with).
author Matthew Wild <mwild1@gmail.com>
date Fri, 22 Nov 2024 13:50:48 +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);