plugins/receipts.lua

Thu, 23 Mar 2023 18:56:32 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Thu, 23 Mar 2023 18:56:32 +0000
changeset 485
c9a144591649
parent 319
12b0e5cc72bf
permissions
-rw-r--r--

component: Avoid adding to the global stream metatable

This allows component and client connections to be made side-by-side.
Previous to this change, loading this connection module would break the
ability to make client connections, due to overriding stream methods such as
:reopen() and :reset().

A next step would be to share the methods that the two connection modules have
in common.

319
12b0e5cc72bf plugins.receipts: XEP-0184 support.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 local verse = require"verse";
12b0e5cc72bf plugins.receipts: XEP-0184 support.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2 local xmlns_receipts = "urn:xmpp:receipts";
12b0e5cc72bf plugins.receipts: XEP-0184 support.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3
12b0e5cc72bf plugins.receipts: XEP-0184 support.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4 function verse.plugins.receipts(stream)
12b0e5cc72bf plugins.receipts: XEP-0184 support.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5 stream:add_plugin("disco");
12b0e5cc72bf plugins.receipts: XEP-0184 support.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6 local function send_receipt(stanza)
12b0e5cc72bf plugins.receipts: XEP-0184 support.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 if stanza:get_child("request", xmlns_receipts) then
12b0e5cc72bf plugins.receipts: XEP-0184 support.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8 stream:send(verse.reply(stanza)
12b0e5cc72bf plugins.receipts: XEP-0184 support.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9 :tag("received", { xmlns = xmlns_receipts, id = stanza.attr.id }));
12b0e5cc72bf plugins.receipts: XEP-0184 support.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10 end
12b0e5cc72bf plugins.receipts: XEP-0184 support.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11 end
12b0e5cc72bf plugins.receipts: XEP-0184 support.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12
12b0e5cc72bf plugins.receipts: XEP-0184 support.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13 stream:add_disco_feature(xmlns_receipts);
12b0e5cc72bf plugins.receipts: XEP-0184 support.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14 stream:hook("message", send_receipt, 1000);
12b0e5cc72bf plugins.receipts: XEP-0184 support.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15 end
12b0e5cc72bf plugins.receipts: XEP-0184 support.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16

mercurial