view plugins/mod_time.lua @ 11857:e080d6aa0b3b

mod_http_file_share: Allow 'Authorization' header via CORS (thanks kawaii) Can't find anything saying anything on whether this is needed or not. kawaii reported that both Chrome and Firefox complained unless the header was added to the list of allowed headers.
author Kim Alvefur <zash@zash.se>
date Wed, 20 Oct 2021 23:06:07 +0200
parents 0ba963e82ac7
children 70ae68bb0aa5
line wrap: on
line source

-- Prosody IM
-- Copyright (C) 2008-2010 Matthew Wild
-- Copyright (C) 2008-2010 Waqas Hussain
--
-- This project is MIT/X11 licensed. Please see the
-- COPYING file in the source package for more information.
--

local st = require "util.stanza";
local datetime = require "util.datetime".datetime;
local legacy = require "util.datetime".legacy;

-- XEP-0202: Entity Time

module:add_feature("urn:xmpp:time");

local function time_handler(event)
	local origin, stanza = event.origin, event.stanza;
	origin.send(st.reply(stanza):tag("time", {xmlns="urn:xmpp:time"})
		:tag("tzo"):text("+00:00"):up() -- TODO get the timezone in a platform independent fashion
		:tag("utc"):text(datetime()));
	return true;
end

module:hook("iq-get/bare/urn:xmpp:time:time", time_handler);
module:hook("iq-get/host/urn:xmpp:time:time", time_handler);

-- XEP-0090: Entity Time (deprecated)

module:add_feature("jabber:iq:time");

local function legacy_time_handler(event)
	local origin, stanza = event.origin, event.stanza;
	origin.send(st.reply(stanza):tag("query", {xmlns="jabber:iq:time"})
		:tag("utc"):text(legacy()));
	return true;
end

module:hook("iq-get/bare/jabber:iq:time:query", legacy_time_handler);
module:hook("iq-get/host/jabber:iq:time:query", legacy_time_handler);