view mod_pep_atom_categories/mod_pep_atom_categories.lua @ 5243:d5dc8edb2695

mod_http_oauth2: Use more compact IDs UUIDs are nice but so verbose! The reduction in entropy for the nonce should be fine since the timestamp is also counts towards this, and it changes every second (modulo clock shenanigans), so the chances of someone managing to get the same client_secret by registering with the same information at the same time as another entity should be negligible.
author Kim Alvefur <zash@zash.se>
date Sat, 11 Mar 2023 22:46:27 +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);