view mod_admin_notify/mod_admin_notify.lua @ 6173:274fb65904a7

mod_cloud_notify(all the extentions): remove rockspec dependemcy so the prosody community module does not get installed, since trunk already has it. diff --git a/mod_cloud_notify_encrypted/README.md b/mod_cloud_notify_encrypted/README.md --- a/mod_cloud_notify_encrypted/README.md +++ b/mod_cloud_notify_encrypted/README.md @@ -2,9 +2,6 @@ labels: - 'Stage-Alpha' summary: 'Support for encrypted payloads in push notifications' -rockspec: - dependencies: - - mod_cloud_notify ... Introduction diff --git a/mod_cloud_notify_filters/README.md b/mod_cloud_notify_filters/README.md --- a/mod_cloud_notify_filters/README.md +++ b/mod_cloud_notify_filters/README.md @@ -2,9 +2,6 @@ labels: - 'Stage-Alpha' summary: 'Support for push notification filtering rules' -rockspec: - dependencies: - - mod_cloud_notify ... Introduction diff --git a/mod_cloud_notify_priority_tag/README.md b/mod_cloud_notify_priority_tag/README.md --- a/mod_cloud_notify_priority_tag/README.md +++ b/mod_cloud_notify_priority_tag/README.md @@ -2,9 +2,6 @@ labels: - 'Stage-Alpha' summary: 'Support for indicating importance to push notification servers' -rockspec: - dependencies: - - mod_cloud_notify ... Introduction
author Menel <menel@snikket.de>
date Thu, 13 Feb 2025 12:20:46 +0100
parents 44e18454e1e0
children
line wrap: on
line source

local it = require "util.iterators";
local jid = require "util.jid";
local set = require "util.set";
local st = require "util.stanza";

local roles_store = module:open_store("roles", "map");
local config_admins = module:get_option_inherited_set("admins", {}) / jid.prep;

local function append_host(username)
	return username.."@"..module.host;
end

local function get_admins()
	local role_admins = roles_store:get_all("prosody:admin") or {};
	local admins = config_admins + (set.new(it.to_array(it.keys(role_admins))) / append_host);
	return admins;
end

function notify(text) --luacheck: ignore 131/notify
	local base_msg = st.message({ from = module.host })
		:text_tag("body", text);
	for admin_jid in get_admins() do
		local msg = st.clone(base_msg);
		msg.attr.to = admin_jid;
		module:send(msg);
	end
end