Annotate

mod_idlecompat/mod_idlecompat.lua @ 6111:ffd0184cd478

mod_compliance_latest: New module that depends on and therefore loads the latest compliance tester mod. diff --git a/mod_compliance_latest/README.md b/mod_compliance_latest/README.md new file mode 100644 --- /dev/null +++ b/mod_compliance_latest/README.md @@ -0,0 +1,25 @@ +--- +summary: XMPP Compliance Suites self-test +labels: +- Stage-Beta +rockspec: + dependencies: + - mod_compliance_2023 +... + +# Introduction + +This module will always require and load to the lastest compliance tester we have in the community modules. +Currently this is [mod_compliance_2023]. + +# Configuration + +Just load this module as any other module and it will automatically install [mod_compliance_2023] if you use the Prosody plugin installer. +See the linked module for further details. + +# Compatibility + + Prosody-Version Status + --------------- ---------------------- + trunk Works as of 2024-12-22 + 0.12 Works diff --git a/mod_compliance_latest/mod_compliance_latest.lua b/mod_compliance_latest/mod_compliance_latest.lua new file mode 100644 --- /dev/null +++ b/mod_compliance_latest/mod_compliance_latest.lua @@ -0,0 +1,1 @@ +module:depends("compliance_2023");
author Menel <menel@snikket.de>
date Sun, 22 Dec 2024 18:12:42 +0100
parent 2164:4b58e35a72e0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1260
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
1 -- Last User Interaction in Presence via Last Activity compatibility module
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
2 -- http://xmpp.org/extensions/xep-0319.html
2164
4b58e35a72e0 mod_idlecompat: Reference the correct XEP (256, not 12) and drop a redundant check
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1260
diff changeset
3 -- http://xmpp.org/extensions/xep-0256.html
1260
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
4 -- Copyright (C) 2014 Tobias Markmann
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
5 --
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
6 -- This file is MIT/X11 licensed.
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
7
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
8 local st = require "util.stanza";
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
9 local datetime = require "util.datetime";
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
10
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
11 local function on_presence(event)
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
12 local stanza = event.stanza;
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
13
2164
4b58e35a72e0 mod_idlecompat: Reference the correct XEP (256, not 12) and drop a redundant check
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1260
diff changeset
14 local last_activity = stanza:get_child("query", "jabber:iq:last");
1260
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
15 local has_idle = stanza:get_child("idle", "urn:xmpp:idle:1");
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
16 if last_activity and not has_idle then
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
17 module:log("debug", "Adding XEP-0319 tag from Last Activity.");
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
18 local seconds = last_activity.attr.seconds;
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
19 local last_userinteraction = datetime.datetime(os.time() - seconds);
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
20 stanza:tag("idle", { xmlns = "urn:xmpp:idle:1", since = last_userinteraction }):up();
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
21 end
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
22 end
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
23
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
24 -- incoming
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
25 module:hook("presence/full", on_presence, 900);
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
26 module:hook("presence/bare", on_presence, 900);
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
27
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
28 -- outgoing
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
29 module:hook("pre-presence/bare", on_presence, 900);
4e14ad802d58 mod_idlecompat: Add initial version.
Tobias Markmann <tm@ayena.de>
parents:
diff changeset
30 module:hook("pre-presence/full", on_presence, 900);
2164
4b58e35a72e0 mod_idlecompat: Reference the correct XEP (256, not 12) and drop a redundant check
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1260
diff changeset
31 module:hook("pre-presence/host", on_presence, 900);