annotate mod_pep_atom_categories/mod_pep_atom_categories.lua @ 5608:1893ae742f66

mod_http_oauth2: Show errors on device flow user code entry page If the user enters the code incorrectly, having to click back to try again is no fun. Instead, show the error and the code entry form again.
author Kim Alvefur <zash@zash.se>
date Wed, 19 Jul 2023 13:05:47 +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);