Software /
code /
prosody-modules
Comparison
mod_muc_log/mod_muc_log.lua @ 1133:11e2598baafb
mod_muc_log: Use old datamanager directly, instead of hacking storagemanager
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 10 Aug 2013 17:25:21 +0200 |
parent | 1105:7837a5f7c10d |
child | 1134:0664f8b783fd |
comparison
equal
deleted
inserted
replaced
1132:832235cc1910 | 1133:11e2598baafb |
---|---|
1 local prosody = prosody; | 1 local prosody = prosody; |
2 local hosts = prosody.hosts; | 2 local hosts = prosody.hosts; |
3 local tostring = tostring; | 3 local tostring = tostring; |
4 local split_jid = require "util.jid".split; | 4 local split_jid = require "util.jid".split; |
5 local cm = require "core.configmanager"; | 5 local cm = require "core.configmanager"; |
6 local datamanager = require "util.datamanager"; | 6 local storagemanager = storagemanager; |
7 local datamanager = storagemanager.olddm; | |
7 local data_load, data_store, data_getpath = datamanager.load, datamanager.store, datamanager.getpath; | 8 local data_load, data_store, data_getpath = datamanager.load, datamanager.store, datamanager.getpath; |
8 local datastore = "muc_log"; | 9 local datastore = "muc_log"; |
9 local error_reply = require "util.stanza".error_reply; | 10 local error_reply = require "util.stanza".error_reply; |
10 local storagemanager = storagemanager; | |
11 local muc_form_config_option = "muc#roomconfig_enablelogging" | 11 local muc_form_config_option = "muc#roomconfig_enablelogging" |
12 | 12 |
13 local mod_host = module:get_host(); | 13 local mod_host = module:get_host(); |
14 local log_presences = module:get_option_boolean("muc_log_presences", true); | 14 local log_presences = module:get_option_boolean("muc_log_presences", true); |
15 | |
16 -- Helper Functions | |
17 | |
18 local function inject_storage_config() | |
19 local _storage = cm.getconfig()[mod_host].storage; | |
20 | |
21 module:log("debug", "injecting storage config..."); | |
22 if type(_storage) == "string" then cm.getconfig()[mod_host].default_storage = _storage; end | |
23 if type(_storage) == "table" then -- append | |
24 _storage.muc_log = "internal"; | |
25 else | |
26 cm.getconfig()[mod_host].storage = { muc_log = "internal" }; | |
27 end | |
28 | |
29 storagemanager.get_driver(mod_host, "muc_log"); -- init | |
30 end | |
31 | 15 |
32 -- Module Definitions | 16 -- Module Definitions |
33 | 17 |
34 function log_if_needed(e) | 18 function log_if_needed(e) |
35 local stanza, origin = e.stanza, e.origin; | 19 local stanza, origin = e.stanza, e.origin; |
147 if log_presences then | 131 if log_presences then |
148 module:hook("iq/bare", log_if_needed, 1); | 132 module:hook("iq/bare", log_if_needed, 1); |
149 module:hook("presence/full", log_if_needed, 1); | 133 module:hook("presence/full", log_if_needed, 1); |
150 end | 134 end |
151 | 135 |
152 local function reload() | |
153 inject_storage_config(); | |
154 end | |
155 | |
156 function module.load() | |
157 inject_storage_config(); | |
158 end | |
159 | |
160 module:log("debug", "module mod_muc_log loaded!"); | 136 module:log("debug", "module mod_muc_log loaded!"); |