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 |