105 self:_route_stanza(stanza); |
105 self:_route_stanza(stanza); |
106 end |
106 end |
107 end |
107 end |
108 stanza.attr.to = to; |
108 stanza.attr.to = to; |
109 if historic then -- add to history |
109 if historic then -- add to history |
110 local history = self._data['history']; |
110 return self:save_to_history(stanza) |
111 if not history then history = {}; self._data['history'] = history; end |
111 end |
112 stanza = st.clone(stanza); |
112 end |
113 stanza.attr.to = ""; |
113 function room_mt:save_to_history(stanza) |
114 local stamp = datetime.datetime(); |
114 local history = self._data['history']; |
115 stanza:tag("delay", {xmlns = "urn:xmpp:delay", from = muc_domain, stamp = stamp}):up(); -- XEP-0203 |
115 if not history then history = {}; self._data['history'] = history; end |
116 stanza:tag("x", {xmlns = "jabber:x:delay", from = muc_domain, stamp = datetime.legacy()}):up(); -- XEP-0091 (deprecated) |
116 stanza = st.clone(stanza); |
117 local entry = { stanza = stanza, stamp = stamp }; |
117 stanza.attr.to = ""; |
118 t_insert(history, entry); |
118 local stamp = datetime.datetime(); |
119 while #history > (self._data.history_length or default_history_length) do t_remove(history, 1) end |
119 stanza:tag("delay", {xmlns = "urn:xmpp:delay", from = muc_domain, stamp = stamp}):up(); -- XEP-0203 |
120 end |
120 stanza:tag("x", {xmlns = "jabber:x:delay", from = muc_domain, stamp = datetime.legacy()}):up(); -- XEP-0091 (deprecated) |
|
121 local entry = { stanza = stanza, stamp = stamp }; |
|
122 t_insert(history, entry); |
|
123 while #history > (self._data.history_length or default_history_length) do t_remove(history, 1) end |
121 end |
124 end |
122 function room_mt:broadcast_except_nick(stanza, nick) |
125 function room_mt:broadcast_except_nick(stanza, nick) |
123 for rnick, occupant in pairs(self._occupants) do |
126 for rnick, occupant in pairs(self._occupants) do |
124 if rnick ~= nick then |
127 if rnick ~= nick then |
125 for jid in pairs(occupant.sessions) do |
128 for jid in pairs(occupant.sessions) do |