view mod_pep_atom_categories/mod_pep_atom_categories.lua @ 5039:c0d243b27e64

mod_sasl2, mod_sasl_bind2, mod_sasl2_sm: Bump XEP-0388 namespace This is the namespace for the proposed update to XEP-0388. I.e. not even experimental yet... but this is all a work in progress anyway.
author Matthew Wild <mwild1@gmail.com>
date Tue, 13 Sep 2022 20:32:20 +0100
parents 5fc306239db3
children
line wrap: on
line source

module:depends("pep");

local st = require"util.stanza";

local options = {
	access_model = "open",
	max_items = "max",
};

module:handle_items("pep-service", function (event)
        local service = event.item.service;

        module:hook_object_event(service.events, "item-published", function(event)
		local service = event.service;
		local node = event.node;
		local actor = event.actor;
		local id = event.id;
		local item = event.item;

		local entry = item:get_child("entry", "http://www.w3.org/2005/Atom");
		if entry == nil then
			return;
		end

		for category in entry:childtags("category") do
			local term = category.attr.term;
			local payload = st.stanza("item", {xmlns = "http://jabber.org/protocol/pubsub"})
				:tag("item", {xmlns = "xmpp:linkmauve.fr/x-categories", jid = service.jid, node = node, id = id});
			service:publish("category-"..term, actor, nil, payload, options);
		end
	end);
end);