Mercurial > prosody-modules
comparison mod_cloud_notify/mod_cloud_notify.lua @ 3079:2a918a8c47db
mod_cloud_notify: use next() instead of # operator and update README
| author | tmolitor <thilo@eightysoft.de> |
|---|---|
| date | Fri, 01 Jun 2018 18:24:34 +0200 |
| parents | 6b860de18a53 |
| children | 1ea6861b533f |
comparison
equal
deleted
inserted
replaced
| 3078:6b860de18a53 | 3079:2a918a8c47db |
|---|---|
| 6 | 6 |
| 7 local t_insert = table.insert; | 7 local t_insert = table.insert; |
| 8 local s_match = string.match; | 8 local s_match = string.match; |
| 9 local s_sub = string.sub; | 9 local s_sub = string.sub; |
| 10 local os_time = os.time; | 10 local os_time = os.time; |
| 11 local next = next; | |
| 11 local st = require"util.stanza"; | 12 local st = require"util.stanza"; |
| 12 local jid = require"util.jid"; | 13 local jid = require"util.jid"; |
| 13 local dataform = require"util.dataforms".new; | 14 local dataform = require"util.dataforms".new; |
| 14 local filters = require"util.filters"; | 15 local filters = require"util.filters"; |
| 15 local hashes = require"util.hashes"; | 16 local hashes = require"util.hashes"; |
| 358 }; | 359 }; |
| 359 | 360 |
| 360 -- http://xmpp.org/extensions/xep-0357.html#publishing | 361 -- http://xmpp.org/extensions/xep-0357.html#publishing |
| 361 local function handle_notify_request(stanza, node, user_push_services) | 362 local function handle_notify_request(stanza, node, user_push_services) |
| 362 local pushes = 0; | 363 local pushes = 0; |
| 363 if not user_push_services or not #user_push_services then return pushes end | 364 if not user_push_services or next(user_push_services) == nil then return pushes end |
| 364 | 365 |
| 365 for push_identifier, push_info in pairs(user_push_services) do | 366 for push_identifier, push_info in pairs(user_push_services) do |
| 366 local send_push = true; -- only send push to this node when not already done for this stanza or if no stanza is given at all | 367 local send_push = true; -- only send push to this node when not already done for this stanza or if no stanza is given at all |
| 367 if stanza then | 368 if stanza then |
| 368 if not stanza._push_notify then stanza._push_notify = {}; end | 369 if not stanza._push_notify then stanza._push_notify = {}; end |
| 494 to = to and jid.split(to) or event.origin.username; | 495 to = to and jid.split(to) or event.origin.username; |
| 495 | 496 |
| 496 -- only notify if the stanza destination is the mam user we store it for | 497 -- only notify if the stanza destination is the mam user we store it for |
| 497 if event.for_user == to then | 498 if event.for_user == to then |
| 498 local user_push_services = push_store:get(to); | 499 local user_push_services = push_store:get(to); |
| 499 if not #user_push_services then return end | 500 if next(user_push_services) == nil then return end |
| 500 | 501 |
| 501 -- only notify nodes with no active sessions (smacks is counted as active and handled separate) | 502 -- only notify nodes with no active sessions (smacks is counted as active and handled separate) |
| 502 local notify_push_sevices = {}; | 503 local notify_push_sevices = {}; |
| 503 for identifier, push_info in pairs(user_push_services) do | 504 for identifier, push_info in pairs(user_push_services) do |
| 504 local identifier_found = nil; | 505 local identifier_found = nil; |
