# HG changeset patch # User Kim Alvefur # Date 1339184341 -7200 # Node ID e09ae2395d41830dda3f4d1d27fb2fd48a574b1c # Parent 0dda04d5eb84ea88373e876e31b7c6f60fd1fef8 squishy, plugins.archive: Fetch RSM lib from prosody-modules and use. diff -r 0dda04d5eb84 -r e09ae2395d41 plugins/archive.lua --- a/plugins/archive.lua Fri Jun 08 06:44:20 2012 +0200 +++ b/plugins/archive.lua Fri Jun 08 21:39:01 2012 +0200 @@ -10,7 +10,9 @@ local uuid = require "util.uuid".generate; local parse_datetime = require "util.datetime".parse; local datetime = require "util.datetime".datetime; +local rsm = require "util.rsm"; local tonumber = tonumber; +local NULL = {}; function verse.plugins.archive(stream) function stream:query_archive(where, query_params, callback) @@ -30,6 +32,11 @@ if qend then query_st:tag("end"):text(datetime(qend)):up(); end + query_params["start"], query_params["end"], query_params["with"] = nil, nil, nil; + + if next(query_params) then + query_st:add_child(rsm.generate(query_params)); + end local results = {}; local function handle_archived_message(message) @@ -51,6 +58,8 @@ self:hook("message", handle_archived_message, 1); self:send_iq(query_st, function(reply) self:unhook("message", handle_archived_message); + local rset = reply.tags[1] and rsm.get(reply.tags[1]); + for k,v in pairs(rset or NULL) do results[k]=v; end callback(reply.attr.type == "result" and #results, results); return true end); diff -r 0dda04d5eb84 -r e09ae2395d41 squishy --- a/squishy Fri Jun 08 06:44:20 2012 +0200 +++ b/squishy Fri Jun 08 21:39:01 2012 +0200 @@ -6,6 +6,8 @@ Module "util.sha1" "util/sha1.lua" Module "lib.adhoc" "libs/adhoc.lib.lua" +AutoFetchURL("https://prosody-modules.googlecode.com/hg/mod_mam/?"); +Module "util.rsm" "rsm.lib.lua" -- Prosody libraries if not GetOption("prosody") then AutoFetchURL "http://hg.prosody.im/0.9/raw-file/381e0b874e6d/?"