mod_cloud_notify/mod_cloud_notify.lua
changeset 2267 92af641fcf48
parent 2266 19fbf190b5a7
child 2399 2e641ab995b3
equal deleted inserted replaced
2266:19fbf190b5a7 2267:92af641fcf48
    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