Mercurial > prosody-modules
comparison mod_cloud_notify/mod_cloud_notify.lua @ 1909:c7389fe74de7
mod_cloud_notify: Make inclusion of message sender and body optional via config option
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Wed, 14 Oct 2015 14:07:57 +0200 |
| parents | eba279ddc050 |
| children | e170b11b60b8 |
comparison
equal
deleted
inserted
replaced
| 1908:eba279ddc050 | 1909:c7389fe74de7 |
|---|---|
| 6 local st = require"util.stanza"; | 6 local st = require"util.stanza"; |
| 7 local jid = require"util.jid"; | 7 local jid = require"util.jid"; |
| 8 local dataform = require"util.dataforms".new; | 8 local dataform = require"util.dataforms".new; |
| 9 | 9 |
| 10 local xmlns_push = "urn:xmpp:push:0"; | 10 local xmlns_push = "urn:xmpp:push:0"; |
| 11 | |
| 12 -- configuration | |
| 13 local include_body = module:get_option("push_notification_with_body", true); | |
| 14 local include_sender = module:get_option("push_notification_with_sender", true); | |
| 11 | 15 |
| 12 -- For keeping state across reloads | 16 -- For keeping state across reloads |
| 13 local push_enabled = module:shared("push-enabled-users"); | 17 local push_enabled = module:shared("push-enabled-users"); |
| 14 | 18 |
| 15 -- http://xmpp.org/extensions/xep-0357.html#disco | 19 -- http://xmpp.org/extensions/xep-0357.html#disco |
| 84 push_info.count = push_info.count + 1; | 88 push_info.count = push_info.count + 1; |
| 85 local push_jid, push_node = push_info.jid, push_info.node; | 89 local push_jid, push_node = push_info.jid, push_info.node; |
| 86 local push_publish = st.iq({ to = push_jid, from = module.host, type = "set", id = "push" }) | 90 local push_publish = st.iq({ to = push_jid, from = module.host, type = "set", id = "push" }) |
| 87 :tag("pubsub", { xmlns = "http://jabber.org/protocol/pubsub" }) | 91 :tag("pubsub", { xmlns = "http://jabber.org/protocol/pubsub" }) |
| 88 :tag("publish", { node = push_node }); | 92 :tag("publish", { node = push_node }); |
| 89 push_publish:add_child(push_form:form({ | 93 local form_data = { |
| 90 ["message-count"] = tostring(push_info.count); | 94 ["message-count"] = tostring(push_info.count); |
| 91 ["last-message-sender"] = stanza.attr.from; | 95 }; |
| 92 ["last-message-body"] = stanza:get_child_text("body"); | 96 if include_sender then |
| 93 })); | 97 form_data["last-message-sender"] = stanza.attr.from; |
| 98 end | |
| 99 if include_body then | |
| 100 form_data["last-message-body"] = stanza:get_child_text("body"); | |
| 101 end | |
| 102 push_publish:add_child(push_form:form(form_data)); | |
| 94 push_publish:up(); -- / publish | 103 push_publish:up(); -- / publish |
| 95 if push_info.options then | 104 if push_info.options then |
| 96 push_publish:tag("publish-options"):add_child(push_info.options); | 105 push_publish:tag("publish-options"):add_child(push_info.options); |
| 97 end | 106 end |
| 98 module:send(push_publish); | 107 module:send(push_publish); |
