Comparison

plugins/muc/muc.lib.lua @ 8477:597c23e1c38e

Merge 0.9->0.10
author Kim Alvefur <zash@zash.se>
date Sun, 10 Dec 2017 22:23:32 +0100
parent 8466:df970f76c720
parent 8476:082d12728645
child 8480:3d3706147174
child 8578:cf10cd3eb728
comparison
equal deleted inserted replaced
8466:df970f76c720 8477:597c23e1c38e
97 self:_route_stanza(stanza); 97 self:_route_stanza(stanza);
98 end 98 end
99 end 99 end
100 function room_mt:broadcast_message(stanza, historic) 100 function room_mt:broadcast_message(stanza, historic)
101 local to = stanza.attr.to; 101 local to = stanza.attr.to;
102 local room_jid = self.jid;
103
104 stanza:maptags(function (child)
105 if child.name == "delay" and child.attr["xmlns"] == "urn:xmpp:delay" then
106 if child.attr["from"] == room_jid then
107 return nil;
108 end
109 end
110 if child.name == "x" and child.attr["xmlns"] == "jabber:x:delay" then
111 if child.attr["from"] == room_jid then
112 return nil;
113 end
114 end
115 return child;
116 end)
117
102 for occupant, o_data in pairs(self._occupants) do 118 for occupant, o_data in pairs(self._occupants) do
103 for jid in pairs(o_data.sessions) do 119 for jid in pairs(o_data.sessions) do
104 stanza.attr.to = jid; 120 stanza.attr.to = jid;
105 self:_route_stanza(stanza); 121 self:_route_stanza(stanza);
106 end 122 end
114 local history = self._data['history']; 130 local history = self._data['history'];
115 if not history then history = {}; self._data['history'] = history; end 131 if not history then history = {}; self._data['history'] = history; end
116 stanza = st.clone(stanza); 132 stanza = st.clone(stanza);
117 stanza.attr.to = ""; 133 stanza.attr.to = "";
118 local stamp = datetime.datetime(); 134 local stamp = datetime.datetime();
119 stanza:tag("delay", {xmlns = "urn:xmpp:delay", from = muc_domain, stamp = stamp}):up(); -- XEP-0203 135 stanza:tag("delay", {xmlns = "urn:xmpp:delay", from = self.jid, stamp = stamp}):up(); -- XEP-0203
120 stanza:tag("x", {xmlns = "jabber:x:delay", from = muc_domain, stamp = datetime.legacy()}):up(); -- XEP-0091 (deprecated) 136 stanza:tag("x", {xmlns = "jabber:x:delay", from = self.jid, stamp = datetime.legacy()}):up(); -- XEP-0091 (deprecated)
121 local entry = { stanza = stanza, stamp = stamp }; 137 local entry = { stanza = stanza, stamp = stamp };
122 t_insert(history, entry); 138 t_insert(history, entry);
123 while #history > (self._data.history_length or default_history_length) do t_remove(history, 1) end 139 while #history > (self._data.history_length or default_history_length) do t_remove(history, 1) end
124 end 140 end
125 function room_mt:broadcast_except_nick(stanza, nick) 141 function room_mt:broadcast_except_nick(stanza, nick)