Annotate

plugins/muc/hats.lib.lua @ 11026:a086825ed73a

util.dataforms: Convert media element sizes to avoid error on Lua 5.3 The stanza API does not accept number values and threw an error due to the height and width attributes of the media element (XEP-0221). This part had no test coverage previously, explaining why it was not discovered until now.
author Kim Alvefur <zash@zash.se>
date Sun, 16 Aug 2020 12:55:55 +0200
parent 10714:9ecad2304297
child 11245:43b43e7156b8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10693
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 local st = require "util.stanza";
10714
9ecad2304297 MUC: Switch hats to new presence APIs
Matthew Wild <mwild1@gmail.com>
parents: 10693
diff changeset
2 local muc_util = module:require "muc/util";
10693
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 local xmlns_hats = "xmpp:prosody.im/protocol/hats:1";
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5
10714
9ecad2304297 MUC: Switch hats to new presence APIs
Matthew Wild <mwild1@gmail.com>
parents: 10693
diff changeset
6 -- Strip any hats claimed by the client (to prevent spoofing)
9ecad2304297 MUC: Switch hats to new presence APIs
Matthew Wild <mwild1@gmail.com>
parents: 10693
diff changeset
7 muc_util.add_filtered_namespace(xmlns_hats);
10693
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8
10714
9ecad2304297 MUC: Switch hats to new presence APIs
Matthew Wild <mwild1@gmail.com>
parents: 10693
diff changeset
9 module:hook("muc-build-occupant-presence", function (event)
10693
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 local aff_data = event.room:get_affiliation_data(event.occupant.bare_jid);
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 local hats = aff_data and aff_data.hats;
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12 if not hats then return; end
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 local hats_el;
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 for hat_id, hat_data in pairs(hats) do
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 if hat_data.active then
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 if not hats_el then
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 hats_el = st.stanza("hats", { xmlns = xmlns_hats });
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18 end
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19 hats_el:tag("hat", { uri = hat_id, title = hat_data.title }):up();
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 end
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
21 end
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22 if not hats_el then return; end
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
23 event.stanza:add_direct_child(hats_el);
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
24 end);