Software /
code /
prosody
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); |