Software /
code /
verse
Comparison
plugins/archive.lua @ 297:447dffdaf46c
plugins.archive: Parse the timestamp
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 20 Apr 2012 04:12:49 +0200 |
parent | 296:78ddfd30c74e |
child | 303:0dda04d5eb84 |
comparison
equal
deleted
inserted
replaced
296:78ddfd30c74e | 297:447dffdaf46c |
---|---|
6 local st = require "util.stanza"; | 6 local st = require "util.stanza"; |
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 | 12 |
12 function verse.plugins.archive(stream) | 13 function verse.plugins.archive(stream) |
13 function stream:query_archive(where, query_params, callback) | 14 function stream:query_archive(where, query_params, callback) |
14 local queryid = uuid(); | 15 local queryid = uuid(); |
15 local query_st = st.iq{ type="get", to = where } | 16 local query_st = st.iq{ type="get", to = where } |
30 if result_tag and result_tag.attr.queryid == queryid then | 31 if result_tag and result_tag.attr.queryid == queryid then |
31 local forwarded = message:get_child("forwarded", xmlns_forward); | 32 local forwarded = message:get_child("forwarded", xmlns_forward); |
32 | 33 |
33 local id = result_tag.attr.id; | 34 local id = result_tag.attr.id; |
34 local delay = forwarded:get_child("delay", xmlns_delay); | 35 local delay = forwarded:get_child("delay", xmlns_delay); |
35 local stamp = delay and delay.attr.stamp or nil; | 36 local stamp = delay and parse_datetime(delay.attr.stamp) or nil; |
36 | 37 |
37 local message = forwarded:get_child("message", "jabber:client") | 38 local message = forwarded:get_child("message", "jabber:client") |
38 | 39 |
39 results[#results+1] = { id = id, stamp = stamp, message = message }; | 40 results[#results+1] = { id = id, stamp = stamp, message = message }; |
40 return true | 41 return true |