mod_mam,mod_muc_mam: Minimize differences (reorder, copy some comments)

Should have no functional difference, but makes it easier keeping
mod_mam and mod_muc_mam in sync.
This commit is contained in:
Kim Alvefur 2023-01-21 16:54:43 +01:00
parent 67b6440d9b
commit 4830568435
2 changed files with 11 additions and 8 deletions

View file

@ -138,9 +138,14 @@ module:hook("iq-set/self/"..xmlns_mam..":query", function(event)
local qset = rsm.get(query);
local qmax = m_min(qset and qset.max or default_max_items, max_max_items);
local reverse = qset and qset.before or false;
local before, after = qset and qset.before or qbefore, qset and qset.after or qafter;
if type(before) ~= "string" then before = nil; end
-- A reverse query needs to be flipped
local flip = reverse;
-- A flip-page query needs to be the opposite of that.
if query:get_child("flip-page") then flip = not flip end
module:log("debug", "Archive query by %s id=%s with=%s when=%s...%s rsm=%q",
origin.username,
@ -150,11 +155,6 @@ module:hook("iq-set/self/"..xmlns_mam..":query", function(event)
qend and timestamp(qend) or "",
qset);
-- A reverse query needs to be flipped
local flip = reverse;
-- A flip-page query needs to be the opposite of that.
if query:get_child("flip-page") then flip = not flip end
-- Load all the data!
local data, err = archive:find(origin.username, {
start = qstart; ["end"] = qend; -- Time range

View file

@ -112,7 +112,7 @@ local query_form = dataform {
-- Serve form
module:hook("iq-get/bare/"..xmlns_mam..":query", function(event)
local origin, stanza = event.origin, event.stanza;
origin.send(st.reply(stanza):tag("query", { xmlns = xmlns_mam }):add_child(query_form:form()));
origin.send(st.reply(stanza):query(xmlns_mam):add_child(query_form:form()));
return true;
end);
@ -172,6 +172,7 @@ module:hook("iq-set/bare/"..xmlns_mam..":query", function(event)
local before, after = qset and qset.before or qbefore, qset and qset.after or qafter;
if type(before) ~= "string" then before = nil; end
-- A reverse query needs to be flipped
local flip = reverse;
-- A flip-page query needs to be the opposite of that.
@ -187,11 +188,12 @@ module:hook("iq-set/bare/"..xmlns_mam..":query", function(event)
-- Load all the data!
local data, err = archive:find(room_node, {
start = qstart; ["end"] = qend; -- Time range
with = "message<groupchat";
limit = qmax + 1;
before = before; after = after;
ids = qids;
reverse = reverse;
with = "message<groupchat";
total = qmax == 0;
});
if not data then
@ -216,6 +218,8 @@ module:hook("iq-set/bare/"..xmlns_mam..":query", function(event)
for id, item, when in data do
count = count + 1;
if count > qmax then
-- We requested qmax+1 items. If that many items are retrieved then
-- there are more results to page through, so:
complete = nil;
break;
end
@ -259,7 +263,6 @@ module:hook("iq-set/bare/"..xmlns_mam..":query", function(event)
first, last = last, first;
end
origin.send(st.reply(stanza)
:tag("fin", { xmlns = xmlns_mam, complete = complete })
:add_child(rsm.generate {