Comparison

plugins/mod_roster.lua @ 7786:b62353e6a8e5

Merge 0.10->trunk
author Kim Alvefur <zash@zash.se>
date Wed, 14 Dec 2016 01:47:19 +0100
parent 7783:f54c960240da
child 8644:3b28c7728e3f
comparison
equal deleted inserted replaced
7780:dbd202e7c587 7786:b62353e6a8e5
17 17
18 local rm_load_roster = require "core.rostermanager".load_roster; 18 local rm_load_roster = require "core.rostermanager".load_roster;
19 local rm_remove_from_roster = require "core.rostermanager".remove_from_roster; 19 local rm_remove_from_roster = require "core.rostermanager".remove_from_roster;
20 local rm_add_to_roster = require "core.rostermanager".add_to_roster; 20 local rm_add_to_roster = require "core.rostermanager".add_to_roster;
21 local rm_roster_push = require "core.rostermanager".roster_push; 21 local rm_roster_push = require "core.rostermanager".roster_push;
22 local core_post_stanza = prosody.core_post_stanza;
23 22
24 module:add_feature("jabber:iq:roster"); 23 module:add_feature("jabber:iq:roster");
25 24
26 local rosterver_stream_feature = st.stanza("ver", {xmlns="urn:xmpp:features:rosterver"}); 25 local rosterver_stream_feature = st.stanza("ver", {xmlns="urn:xmpp:features:rosterver"});
27 module:hook("stream-features", function(event) 26 module:hook("stream-features", function(event)
134 133
135 module:hook_global("user-deleted", function(event) 134 module:hook_global("user-deleted", function(event)
136 local username, host = event.username, event.host; 135 local username, host = event.username, event.host;
137 local origin = event.origin or prosody.hosts[host]; 136 local origin = event.origin or prosody.hosts[host];
138 if host ~= module.host then return end 137 if host ~= module.host then return end
139 local bare = username .. "@" .. host;
140 local roster = rm_load_roster(username, host); 138 local roster = rm_load_roster(username, host);
141 for jid, item in pairs(roster) do 139 for jid, item in pairs(roster) do
142 if jid then 140 if jid then
143 module:fire_event("roster-item-removed", { 141 module:fire_event("roster-item-removed", {
144 username = username, jid = jid, item = item, roster = roster, origin = origin, 142 username = username, jid = jid, item = item, roster = roster, origin = origin,
145 }); 143 });
146 else 144 else
147 for jid in pairs(item.pending) do 145 for pending_jid in pairs(item.pending) do
148 module:fire_event("roster-item-removed", { 146 module:fire_event("roster-item-removed", {
149 username = username, jid = jid, roster = roster, origin = origin, 147 username = username, jid = pending_jid, roster = roster, origin = origin,
150 }); 148 });
151 end 149 end
152 end 150 end
153 end 151 end
154 end, 300); 152 end, 300);