Mercurial > prosody-modules
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_muc_moderation_delay/mod_muc_moderation_delay.lua Fri Jul 26 15:36:05 2024 +0200 @@ -0,0 +1,30 @@ +-- 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);