Software /
code /
verse
Changeset
480:a48a4723aa2a
Add time query plugin
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 17 Mar 2023 12:30:49 +0000 |
parents | 479:2bb12fb6fcbd |
children | 481:6fc84e9bd03e |
files | plugins/time.lua squishy |
diffstat | 2 files changed, 35 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/plugins/time.lua Fri Mar 17 12:30:49 2023 +0000 @@ -0,0 +1,34 @@ +local verse = require "verse"; +local dt = require "util.datetime"; + +local xmlns_time = "urn:xmpp:time"; + +function verse.plugins.time(stream) + function stream:query_time(target_jid, callback) + callback = callback or function (time) return self:event("time/response", time); end + self:send_iq(verse.iq({ type = "get", to = target_jid }) + :tag("time", { xmlns = xmlns_time }), + function (reply) + if reply.attr.type == "result" then + local query = reply:get_child("time", xmlns_time); + local resp = { + tzo = query:get_child_text("tzo"); + utc = query:get_child_text("utc"); + }; + if resp.utc then + resp.timestamp = dt.parse(resp.utc); + end + callback(resp); + else + local type, condition, text = reply:get_error(); + callback({ + error = true; + condition = condition; + text = text; + type = type; + }); + end + end); + end + return true; +end
--- a/squishy Fri Mar 17 12:30:25 2023 +0000 +++ b/squishy Fri Mar 17 12:30:49 2023 +0000 @@ -63,7 +63,7 @@ -- Reliability "smacks", "keepalive"; -- Queries - "disco", "version", "ping", "uptime"; + "disco", "version", "ping", "uptime", "time"; -- Privacy control "blocking"; -- Jingle / file transfer