mirror of
https://github.com/bjc/prosody.git
synced 2025-04-03 21:27:38 +03:00
MUC: Move condition for what gets added to history so that other modules benefit (thanks jcbrand)
This helps mod_muc_mam avoid logging eg chat-state-only messages without needing to implement similar logic in many places
This commit is contained in:
parent
4b973422dd
commit
c9a4b55656
1 changed files with 16 additions and 16 deletions
|
@ -138,28 +138,28 @@ end, 50); -- Before subject(20)
|
|||
|
||||
-- add to history
|
||||
module:hook("muc-add-history", function(event)
|
||||
local historic = event.stanza:get_child("body");
|
||||
if historic then
|
||||
local room = event.room
|
||||
local history = room._history;
|
||||
if not history then history = {}; room._history = history; end
|
||||
local stanza = st.clone(event.stanza);
|
||||
stanza.attr.to = "";
|
||||
local ts = gettime();
|
||||
local stamp = datetime.datetime(ts);
|
||||
stanza:tag("delay", {xmlns = "urn:xmpp:delay", from = module.host, stamp = stamp}):up(); -- XEP-0203
|
||||
stanza:tag("x", {xmlns = "jabber:x:delay", from = module.host, stamp = datetime.legacy()}):up(); -- XEP-0091 (deprecated)
|
||||
local entry = { stanza = stanza, timestamp = ts };
|
||||
table.insert(history, entry);
|
||||
while #history > get_historylength(room) do table.remove(history, 1) end
|
||||
end
|
||||
local room = event.room
|
||||
local history = room._history;
|
||||
if not history then history = {}; room._history = history; end
|
||||
local stanza = st.clone(event.stanza);
|
||||
stanza.attr.to = "";
|
||||
local ts = gettime();
|
||||
local stamp = datetime.datetime(ts);
|
||||
stanza:tag("delay", {xmlns = "urn:xmpp:delay", from = module.host, stamp = stamp}):up(); -- XEP-0203
|
||||
stanza:tag("x", {xmlns = "jabber:x:delay", from = module.host, stamp = datetime.legacy()}):up(); -- XEP-0091 (deprecated)
|
||||
local entry = { stanza = stanza, timestamp = ts };
|
||||
table.insert(history, entry);
|
||||
while #history > get_historylength(room) do table.remove(history, 1) end
|
||||
return true;
|
||||
end, -1);
|
||||
|
||||
-- Have a single muc-add-history event, so that plugins can mark it
|
||||
-- as handled without stopping other muc-broadcast-message handlers
|
||||
module:hook("muc-broadcast-message", function(event)
|
||||
module:fire_event("muc-add-history", event);
|
||||
local historic = event.stanza:get_child("body");
|
||||
if historic then
|
||||
module:fire_event("muc-add-history", event);
|
||||
end
|
||||
end);
|
||||
|
||||
return {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue