5 local verse = require "verse"; |
5 local verse = require "verse"; |
6 local st = require "util.stanza"; |
6 local st = require "util.stanza"; |
7 local xmlns_mam = "urn:xmpp:mam:2" |
7 local xmlns_mam = "urn:xmpp:mam:2" |
8 local xmlns_forward = "urn:xmpp:forward:0"; |
8 local xmlns_forward = "urn:xmpp:forward:0"; |
9 local xmlns_delay = "urn:xmpp:delay"; |
9 local xmlns_delay = "urn:xmpp:delay"; |
10 local uuid = require "util.uuid".generate; |
10 local new_id = require "util.id".short; |
11 local parse_datetime = require "util.datetime".parse; |
11 local parse_datetime = require "util.datetime".parse; |
12 local datetime = require "util.datetime".datetime; |
12 local datetime = require "util.datetime".datetime; |
13 local dataform = require"util.dataforms".new; |
13 local dataform = require"util.dataforms".new; |
14 local rsm = require "util.rsm"; |
14 local rsm = require "util.rsm"; |
15 local NULL = {}; |
15 local NULL = {}; |
21 { name = "end"; type = "text-single"; }; |
21 { name = "end"; type = "text-single"; }; |
22 }; |
22 }; |
23 |
23 |
24 function verse.plugins.archive(stream) |
24 function verse.plugins.archive(stream) |
25 function stream:query_archive(where, query_params, callback) |
25 function stream:query_archive(where, query_params, callback) |
26 local queryid = uuid(); |
26 local queryid = new_id(); |
27 local query_st = st.iq{ type="set", to = where } |
27 local query_st = st.iq{ id = queryid, type="set", to = where } |
28 :tag("query", { xmlns = xmlns_mam, queryid = queryid }); |
28 :tag("query", { xmlns = xmlns_mam, queryid = queryid }); |
29 |
29 |
30 |
30 |
31 local qstart, qend = tonumber(query_params["start"]), tonumber(query_params["end"]); |
31 local qstart, qend = tonumber(query_params["start"]), tonumber(query_params["end"]); |
32 query_params["start"] = qstart and datetime(qstart); |
32 query_params["start"] = qstart and datetime(qstart); |