Mercurial > prosody-modules
view mod_motd_sequential/mod_motd_sequential.lua @ 4980:da151f9af861
replaced 'session' with 'origin' in push_disable
session is not defined in this function, trying to access it
leads to an error.
The correct reference seems to be 'origin'.
(This may have come about by copying from the similar
code in process_stanza_queue.)
author | arcseconds |
---|---|
date | Sat, 30 Jul 2022 21:07:47 +1200 |
parents | 8412592f3011 |
children |
line wrap: on
line source
-- Prosody IM -- Copyright (C) 2008-2010 Matthew Wild -- Copyright (C) 2008-2010 Waqas Hussain -- Copyright (C) 2010 Jeff Mitchell -- -- This project is MIT/X11 licensed. Please see the -- COPYING file in the source package for more information. -- local core_route_stanza = prosody.core_route_stanza; local host = module:get_host(); local motd_jid = module:get_option("motd_jid") or host; local datamanager = require "util.datamanager"; local ipairs = ipairs; local motd_sequential_messages = module:get_option("motd_sequential_messages") or {}; local motd_messagesets = {}; local max = 1; for i, message in ipairs(motd_sequential_messages) do motd_messagesets[i] = message; max = i; end local st = require "util.stanza"; module:hook("resource-bind", function (event) local session = event.session; local alreadyseen_list = datamanager.load(session.username, session.host, "motd_sequential_seen") or { max = 0 }; local alreadyseen = alreadyseen_list["max"] + 1; local motd_stanza; for i = alreadyseen, max do motd_stanza = st.message({ to = session.username..'@'..session.host, from = motd_jid }, motd_messagesets[i]); core_route_stanza(hosts[host], motd_stanza); module:log("debug", "MOTD send to user %s@%s", session.username, session.host); end alreadyseen_list["max"] = max; datamanager.store(session.username, session.host, "motd_sequential_seen", alreadyseen_list); end);