Software /
code /
verse
Comparison
plugins/archive.lua @ 303:0dda04d5eb84
plugins.archive: Treat query params correctly
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 08 Jun 2012 06:44:20 +0200 |
parent | 297:447dffdaf46c |
child | 304:e09ae2395d41 |
comparison
equal
deleted
inserted
replaced
302:0c83cb476246 | 303:0dda04d5eb84 |
---|---|
7 local xmlns_mam = "urn:xmpp:mam:tmp" | 7 local xmlns_mam = "urn:xmpp:mam:tmp" |
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 uuid = require "util.uuid".generate; |
11 local parse_datetime = require "util.datetime".parse; | 11 local parse_datetime = require "util.datetime".parse; |
12 local datetime = require "util.datetime".datetime; | |
13 local tonumber = tonumber; | |
12 | 14 |
13 function verse.plugins.archive(stream) | 15 function verse.plugins.archive(stream) |
14 function stream:query_archive(where, query_params, callback) | 16 function stream:query_archive(where, query_params, callback) |
15 local queryid = uuid(); | 17 local queryid = uuid(); |
16 local query_st = st.iq{ type="get", to = where } | 18 local query_st = st.iq{ type="get", to = where } |
17 :tag("query", { xmlns = xmlns_mam, queryid = queryid }); | 19 :tag("query", { xmlns = xmlns_mam, queryid = queryid }); |
18 | 20 |
19 local params = { "with", "start", "end" }; | 21 local qwith = query_params["with"]; |
20 local query_params = query_params or {}; | 22 if qwith then |
21 for i=1,#params do | 23 query_st:tag("with"):text(qwith):up(); |
22 local k = params[i]; | 24 end |
23 if query_params[k] then | 25 |
24 query_st:tag(k):text(query_params[k]):up(); | 26 local qstart, qend = tonumber(query_params["start"]), tonumber(query_params["end"]); |
25 end | 27 if qstart then |
28 query_st:tag("start"):text(datetime(qstart)):up(); | |
29 end | |
30 if qend then | |
31 query_st:tag("end"):text(datetime(qend)):up(); | |
26 end | 32 end |
27 | 33 |
28 local results = {}; | 34 local results = {}; |
29 local function handle_archived_message(message) | 35 local function handle_archived_message(message) |
30 local result_tag = message:get_child("result", xmlns_mam); | 36 local result_tag = message:get_child("result", xmlns_mam); |