annotate mod_discoitems/mod_discoitems.lua @ 4515:2e33eeafe962

mod_muc_markers: Prevent any markers from reaching the archive, even if untracked Original intention was to leave alone things that this module isn't handling. However markers in archives are just problematic without more advanced logic about what is markable and what is not. It also requires a more advanced query in mod_muc_rai to determine the latest markable message instead of the latest archived message. I'd rather keep the "is archivable" and "is markable" definition the same for simplicity. I don't want to introduce yet another set of rules for no reason. No markers in MAM.
author Matthew Wild <mwild1@gmail.com>
date Mon, 22 Mar 2021 15:55:02 +0000
parents ae91c98b7e4c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
78
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
1 -- mod_discoitems.lua
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
2 --
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
3 -- In the config, you can add:
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
4 --
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
5 -- disco_items = {
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
6 -- {"proxy.eu.jabber.org", "Jabber.org SOCKS5 service"};
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
7 -- {"conference.jabber.org", "The Jabber.org MUC"};
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
8 -- };
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
9 --
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
10
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
11 local st = require "util.stanza";
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
12
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
13 local result_query = st.stanza("query", {xmlns="http://jabber.org/protocol/disco#items"});
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
14 for _, item in ipairs(module:get_option("disco_items") or {}) do
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
15 result_query:tag("item", {jid=item[1], name=item[2]}):up();
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
16 end
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
17
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
18 module:hook('iq/host/http://jabber.org/protocol/disco#items:query', function(event)
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
19 local stanza = event.stanza;
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
20 local query = stanza.tags[1];
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
21 if stanza.attr.type == 'get' and not query.attr.node then
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
22 event.origin.send(st.reply(stanza):add_child(result_query));
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
23 return true;
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
24 end
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
25 end, 100);