99 local to = stanza.attr.to; |
99 local to = stanza.attr.to; |
100 local node = to and jid.split(to) or origin.username; |
100 local node = to and jid.split(to) or origin.username; |
101 local user_push_services = push_enabled:get(node); |
101 local user_push_services = push_enabled:get(node); |
102 if not user_push_services then return end |
102 if not user_push_services then return end |
103 |
103 |
104 module:log("debug", "New message to %s@%s, sending push notifications", node, module.host); |
|
105 for _, push_info in pairs(user_push_services) do |
104 for _, push_info in pairs(user_push_services) do |
106 push_info.count = push_info.count + 1; |
105 push_info.count = push_info.count + 1; |
107 local push_jid, push_node = push_info.jid, push_info.node; |
106 local push_jid, push_node = push_info.jid, push_info.node; |
108 local push_publish = st.iq({ to = push_jid, from = node .. "@" .. module.host, type = "set", id = "push" }) |
107 local push_publish = st.iq({ to = push_jid, from = node .. "@" .. module.host, type = "set", id = "push" }) |
109 :tag("pubsub", { xmlns = "http://jabber.org/protocol/pubsub" }) |
108 :tag("pubsub", { xmlns = "http://jabber.org/protocol/pubsub" }) |
124 push_publish:up(); -- / publish |
123 push_publish:up(); -- / publish |
125 push_publish:up(); -- / pubsub |
124 push_publish:up(); -- / pubsub |
126 if push_info.options then |
125 if push_info.options then |
127 push_publish:tag("publish-options"):add_child(st.deserialize(push_info.options)); |
126 push_publish:tag("publish-options"):add_child(st.deserialize(push_info.options)); |
128 end |
127 end |
129 module:log("debug", "Sending notification to %s", push_jid); |
128 module:log("debug", "Sending push notification for %s@%s to %s", node, module.host, push_jid); |
130 module:send(push_publish); |
129 module:send(push_publish); |
131 end |
130 end |
132 push_enabled:set(node, user_push_services); |
131 push_enabled:set(node, user_push_services); |
133 end |
132 end |
134 |
133 |