# HG changeset patch # User Robert Hoelz # Date 1291919017 21600 # Node ID 048af3ee5899425336c246d36823e84c9a4c866f # Parent 1a9bcbaeb55afce94bae039453dc51713f179713 core.offlinemanager, mod_message, mod_presence: Removed core.offlinemanager in favor of mod_offline. diff -r 1a9bcbaeb55a -r 048af3ee5899 core/offlinemanager.lua --- a/core/offlinemanager.lua Mon Dec 27 06:10:34 2010 +0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ --- 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 datamanager = require "util.datamanager"; -local st = require "util.stanza"; -local datetime = require "util.datetime"; -local ipairs = ipairs; - -module "offlinemanager" - -function store(node, host, stanza) - stanza.attr.stamp = datetime.datetime(); - stanza.attr.stamp_legacy = datetime.legacy(); - return datamanager.list_append(node, host, "offline", st.preserialize(stanza)); -end - -function load(node, host) - local data = datamanager.list_load(node, host, "offline"); - if not data then return; end - for k, v in ipairs(data) do - local stanza = st.deserialize(v); - stanza:tag("delay", {xmlns = "urn:xmpp:delay", from = host, stamp = stanza.attr.stamp}):up(); -- XEP-0203 - stanza:tag("x", {xmlns = "jabber:x:delay", from = host, stamp = stanza.attr.stamp_legacy}):up(); -- XEP-0091 (deprecated) - stanza.attr.stamp, stanza.attr.stamp_legacy = nil, nil; - data[k] = stanza; - end - return data; -end - -function deleteAll(node, host) - return datamanager.list_store(node, host, "offline", nil); -end - -return _M; diff -r 1a9bcbaeb55a -r 048af3ee5899 plugins/mod_message.lua --- a/plugins/mod_message.lua Mon Dec 27 06:10:34 2010 +0500 +++ b/plugins/mod_message.lua Thu Dec 09 12:23:37 2010 -0600 @@ -14,7 +14,6 @@ local jid_bare = require "util.jid".bare; local jid_split = require "util.jid".split; local user_exists = require "core.usermanager".user_exists; -local offlinemanager = require "core.offlinemanager"; local t_insert = table.insert; local function process_to_bare(bare, origin, stanza) @@ -47,7 +46,11 @@ local node, host = jid_split(bare); if user_exists(node, host) then -- TODO apply the default privacy list - offlinemanager.store(node, host, stanza); + + module:fire_event('message/offline/store', { + origin = origin, + stanza = stanza, + }); else origin.send(st.error_reply(stanza, "cancel", "service-unavailable")); end diff -r 1a9bcbaeb55a -r 048af3ee5899 plugins/mod_presence.lua --- a/plugins/mod_presence.lua Mon Dec 27 06:10:34 2010 +0500 +++ b/plugins/mod_presence.lua Thu Dec 09 12:23:37 2010 -0600 @@ -22,7 +22,6 @@ local rostermanager = require "core.rostermanager"; local sessionmanager = require "core.sessionmanager"; -local offlinemanager = require "core.offlinemanager"; local function select_top_resources(user) local priority = 0; @@ -116,13 +115,9 @@ end if priority >= 0 then - local offline = offlinemanager.load(node, host); - if offline then - for _, msg in ipairs(offline) do - origin.send(msg); -- FIXME do we need to modify to/from in any way? - end - offlinemanager.deleteAll(node, host); - end + local event = { origin = origin } + module:fire_event('message/offline/broadcast', event); + module:fire_event('message/offline/delete', event); end end if stanza.attr.type == "unavailable" then