Mercurial > prosody-hg
annotate plugins/mod_lastactivity.lua @ 8706:e2919978673e
net.http: Fix parameter order to http request callbacks
Commit e3b9dc9dd940 changed the parameter order in 2013, but did not update the names of the parameters in the callback function. Due to this inconsistency, 12df41a5a4b1 accidentally reversed the order when fixing the variable names without fixing where they are used.
Additionally the documentation was incorrect (since 2013), and this has also now been fixed.
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Wed, 04 Apr 2018 18:27:44 +0100 |
| parents | 76699a0ae4c4 |
| children | a84dbd2e08bc |
| rev | line source |
|---|---|
|
2018
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
1 -- Prosody IM |
|
2923
b7049746bd29
Update copyright headers for 2010
Matthew Wild <mwild1@gmail.com>
parents:
2029
diff
changeset
|
2 -- Copyright (C) 2008-2010 Matthew Wild |
|
b7049746bd29
Update copyright headers for 2010
Matthew Wild <mwild1@gmail.com>
parents:
2029
diff
changeset
|
3 -- Copyright (C) 2008-2010 Waqas Hussain |
|
5776
bd0ff8ae98a8
Remove all trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
2923
diff
changeset
|
4 -- |
|
2018
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
5 -- This project is MIT/X11 licensed. Please see the |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
6 -- COPYING file in the source package for more information. |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
7 -- |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
8 |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
9 local st = require "util.stanza"; |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
10 local is_contact_subscribed = require "core.rostermanager".is_contact_subscribed; |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
11 local jid_bare = require "util.jid".bare; |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
12 local jid_split = require "util.jid".split; |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
13 |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
14 module:add_feature("jabber:iq:last"); |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
15 |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
16 local map = {}; |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
17 |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
18 module:hook("pre-presence/bare", function(event) |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
19 local stanza = event.stanza; |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
20 if not(stanza.attr.to) and stanza.attr.type == "unavailable" then |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
21 local t = os.time(); |
|
6302
76699a0ae4c4
mod_lastactivity, mod_legacyauth, mod_presence, mod_saslauth, mod_tls: Use the newer stanza:get_child APIs and optimize away some table lookups
Kim Alvefur <zash@zash.se>
parents:
5776
diff
changeset
|
22 local s = stanza:get_child_text("status"); |
|
2018
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
23 map[event.origin.username] = {s = s, t = t}; |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
24 end |
|
2029
d2363643a5c0
mod_lastactivity: Gave a positive priority to the presence event hook.
Waqas Hussain <waqas20@gmail.com>
parents:
2026
diff
changeset
|
25 end, 10); |
|
2018
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
26 |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
27 module:hook("iq/bare/jabber:iq:last:query", function(event) |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
28 local origin, stanza = event.origin, event.stanza; |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
29 if stanza.attr.type == "get" then |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
30 local username = jid_split(stanza.attr.to) or origin.username; |
|
2025
dab1693f8a08
mod_lastactivity: Allow users to request their own last activity.
Waqas Hussain <waqas20@gmail.com>
parents:
2018
diff
changeset
|
31 if not stanza.attr.to or is_contact_subscribed(username, module.host, jid_bare(stanza.attr.from)) then |
|
2018
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
32 local seconds, text = "0", ""; |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
33 if map[username] then |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
34 seconds = tostring(os.difftime(os.time(), map[username].t)); |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
35 text = map[username].s; |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
36 end |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
37 origin.send(st.reply(stanza):tag('query', {xmlns='jabber:iq:last', seconds=seconds}):text(text)); |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
38 else |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
39 origin.send(st.error_reply(stanza, 'auth', 'forbidden')); |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
40 end |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
41 return true; |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
42 end |
|
418c04834017
mod_lastactivity: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
43 end); |
|
2026
97b17187b29d
mod_lastactivity: Persist data across reloads.
Waqas Hussain <waqas20@gmail.com>
parents:
2025
diff
changeset
|
44 |
|
97b17187b29d
mod_lastactivity: Persist data across reloads.
Waqas Hussain <waqas20@gmail.com>
parents:
2025
diff
changeset
|
45 module.save = function() |
|
97b17187b29d
mod_lastactivity: Persist data across reloads.
Waqas Hussain <waqas20@gmail.com>
parents:
2025
diff
changeset
|
46 return {map = map}; |
|
97b17187b29d
mod_lastactivity: Persist data across reloads.
Waqas Hussain <waqas20@gmail.com>
parents:
2025
diff
changeset
|
47 end |
|
97b17187b29d
mod_lastactivity: Persist data across reloads.
Waqas Hussain <waqas20@gmail.com>
parents:
2025
diff
changeset
|
48 module.restore = function(data) |
|
97b17187b29d
mod_lastactivity: Persist data across reloads.
Waqas Hussain <waqas20@gmail.com>
parents:
2025
diff
changeset
|
49 map = data.map or {}; |
|
97b17187b29d
mod_lastactivity: Persist data across reloads.
Waqas Hussain <waqas20@gmail.com>
parents:
2025
diff
changeset
|
50 end |
|
97b17187b29d
mod_lastactivity: Persist data across reloads.
Waqas Hussain <waqas20@gmail.com>
parents:
2025
diff
changeset
|
51 |
