core.offlinemanager, mod_message, mod_presence: Removed core.offlinemanager in favor...
authorRobert Hoelz <rob@hoelz.ro>
Thu, 9 Dec 2010 18:23:37 +0000 (12:23 -0600)
committerRobert Hoelz <rob@hoelz.ro>
Thu, 9 Dec 2010 18:23:37 +0000 (12:23 -0600)
core/offlinemanager.lua [deleted file]
plugins/mod_message.lua
plugins/mod_presence.lua

diff --git a/core/offlinemanager.lua b/core/offlinemanager.lua
deleted file mode 100644 (file)
index 97781e8..0000000
+++ /dev/null
@@ -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.
---
-
-
-\r
-local datamanager = require "util.datamanager";\r
-local st = require "util.stanza";\r
-local datetime = require "util.datetime";\r
-local ipairs = ipairs;\r
-\r
-module "offlinemanager"\r
-\r
-function store(node, host, stanza)\r
-       stanza.attr.stamp = datetime.datetime();\r
-       stanza.attr.stamp_legacy = datetime.legacy();\r
-       return datamanager.list_append(node, host, "offline", st.preserialize(stanza));\r
-end\r
-\r
-function load(node, host)\r
-       local data = datamanager.list_load(node, host, "offline");\r
-       if not data then return; end\r
-       for k, v in ipairs(data) do\r
-               local stanza = st.deserialize(v);\r
-               stanza:tag("delay", {xmlns = "urn:xmpp:delay", from = host, stamp = stanza.attr.stamp}):up(); -- XEP-0203\r
-               stanza:tag("x", {xmlns = "jabber:x:delay", from = host, stamp = stanza.attr.stamp_legacy}):up(); -- XEP-0091 (deprecated)\r
-               stanza.attr.stamp, stanza.attr.stamp_legacy = nil, nil;\r
-               data[k] = stanza;\r
-       end\r
-       return data;\r
-end\r
-\r
-function deleteAll(node, host)\r
-       return datamanager.list_store(node, host, "offline", nil);\r
-end\r
-\r
-return _M;\r
index e38b60e60d6e00162933b3f6efc8c1bc48e5a206..6ac23ab23b7ad5c6ba07e637e32faac50ae12e2c 100644 (file)
@@ -14,7 +14,6 @@ local st = require "util.stanza";
 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 function process_to_bare(bare, origin, stanza)
                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
index 65abe665e29725b3dcda5665e867908fd4255239..933aac622cca123aeb5bbbd43709e4a9767adccd 100644 (file)
@@ -22,7 +22,6 @@ local NULL = {};
 
 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 @@ function handle_normal_presence(origin, stanza)
                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