annotate mod_pep_atom_categories/mod_pep_atom_categories.lua @ 5553:67152838afbc

mod_http_oauth2: Improve error messages for URI properties Since there are separate validation checks for URI properties, including that they should use https, with better and more specific error reporting. Reverts 'luaPattern' to 'pattern' which is not currently supported by util.jsonschema, but allows anything that retrieves the schema over http to validate against it, should they wish to do so.
author Kim Alvefur <zash@zash.se>
date Sat, 17 Jun 2023 18:15:00 +0200
parents 5fc306239db3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4836
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
1 module:depends("pep");
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
2
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
3 local st = require"util.stanza";
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
4
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
5 local options = {
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
6 access_model = "open",
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
7 max_items = "max",
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
8 };
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
9
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
10 module:handle_items("pep-service", function (event)
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
11 local service = event.item.service;
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
12
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
13 module:hook_object_event(service.events, "item-published", function(event)
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
14 local service = event.service;
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
15 local node = event.node;
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
16 local actor = event.actor;
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
17 local id = event.id;
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
18 local item = event.item;
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
19
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
20 local entry = item:get_child("entry", "http://www.w3.org/2005/Atom");
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
21 if entry == nil then
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
22 return;
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
23 end
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
24
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
25 for category in entry:childtags("category") do
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
26 local term = category.attr.term;
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
27 local payload = st.stanza("item", {xmlns = "http://jabber.org/protocol/pubsub"})
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
28 :tag("item", {xmlns = "xmpp:linkmauve.fr/x-categories", jid = service.jid, node = node, id = id});
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
29 service:publish("category-"..term, actor, nil, payload, options);
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
30 end
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
31 end);
5fc306239db3 mod_pep_atom_categories: Add a module to index categories in Atom entries
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff changeset
32 end);