Tue, 23 May 2023 19:41:27 +0200
util.xstanza: Remove, unused since c95b84ed366b
480 | 1 | local verse = require "verse"; |
2 | local dt = require "util.datetime"; | |
3 | ||
4 | local xmlns_time = "urn:xmpp:time"; | |
5 | ||
6 | function verse.plugins.time(stream) | |
7 | function stream:query_time(target_jid, callback) | |
8 | callback = callback or function (time) return self:event("time/response", time); end | |
9 | self:send_iq(verse.iq({ type = "get", to = target_jid }) | |
10 | :tag("time", { xmlns = xmlns_time }), | |
11 | function (reply) | |
12 | if reply.attr.type == "result" then | |
13 | local query = reply:get_child("time", xmlns_time); | |
14 | local resp = { | |
15 | tzo = query:get_child_text("tzo"); | |
16 | utc = query:get_child_text("utc"); | |
17 | }; | |
18 | if resp.utc then | |
19 | resp.timestamp = dt.parse(resp.utc); | |
20 | end | |
21 | callback(resp); | |
22 | else | |
23 | local type, condition, text = reply:get_error(); | |
24 | callback({ | |
25 | error = true; | |
26 | condition = condition; | |
27 | text = text; | |
28 | type = type; | |
29 | }); | |
30 | end | |
31 | end); | |
32 | end | |
33 | return true; | |
34 | end |