view 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
line wrap: on
line source

-- mod_muc_moderation_delay
--
-- SPDX-FileCopyrightText: 2024 John Livingston <https://www.john-livingston.fr/>
-- SPDX-License-Identifier: AGPL-3.0-only
--
-- This file is AGPL-v3 licensed.
-- Please see the Peertube livechat plugin copyright information.
-- https://livingston.frama.io/peertube-plugin-livechat/credits/
--

local add_disco_form = module:require("config").add_disco_form;
local config_submitted = module:require("config").config_submitted;
local add_form_option = module:require("config").add_form_option;
local handle_broadcast_message = module:require("delay").handle_broadcast_message;

-- form_position: the position in the room config form (this value will be passed as priority for the "muc-config-form" hook).
-- By default, field will be between muc#roomconfig_changesubject and muc#roomconfig_moderatedroom
local form_position = module:get_option_number("moderation_delay_form_position") or 80-2;

-- Plugin dependencies
local mod_muc = module:depends "muc";

-- muc-disco and muc-config to configure the feature:
module:hook("muc-disco#info", add_disco_form);
module:hook("muc-config-submitted/muc#roomconfig_moderation_delay", config_submitted);
module:hook("muc-config-form", add_form_option, form_position);

-- intercept muc-broadcast-message, and broadcast with delay if required.
-- Priority is negative, as we want it to be the last handler.
module:hook("muc-broadcast-message", handle_broadcast_message, -1000);