annotate mod_muc_log/mod_muc_log.lua @ 1268:854a3933cfcd

mod_muc_log_http: URL-encode room names. This allows special characters in room names to work. Ideally this escaping shouldn’t be done in the user visible content, but the module’s template system doesn’t currently allow that.
author Waqas Hussain <waqas20@gmail.com>
date Sat, 04 Jan 2014 16:50:57 -0500
parents 723367b5de8c
children 853a382c9bd6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1148
723367b5de8c mod_muc_log: Restore copyright header that somehow got lost
Kim Alvefur <zash@zash.se>
parents: 1134
diff changeset
1 -- Copyright (C) 2009 Thilo Cestonaro
723367b5de8c mod_muc_log: Restore copyright header that somehow got lost
Kim Alvefur <zash@zash.se>
parents: 1134
diff changeset
2 -- Copyright (C) 2009 Waqas Hussain
723367b5de8c mod_muc_log: Restore copyright header that somehow got lost
Kim Alvefur <zash@zash.se>
parents: 1134
diff changeset
3 -- Copyright (C) 2009-2013 Matthew Wild
723367b5de8c mod_muc_log: Restore copyright header that somehow got lost
Kim Alvefur <zash@zash.se>
parents: 1134
diff changeset
4 -- Copyright (C) 2013 Kim Alvefur
723367b5de8c mod_muc_log: Restore copyright header that somehow got lost
Kim Alvefur <zash@zash.se>
parents: 1134
diff changeset
5 -- Copyright (C) 2013 Marco Cirillo
723367b5de8c mod_muc_log: Restore copyright header that somehow got lost
Kim Alvefur <zash@zash.se>
parents: 1134
diff changeset
6
1004
290c21a5e0ee mod_muc_log, mod_muc_log_http: cleanup syntax (off with the "~= nil"), and cut down wild table indexing.
Marco Cirillo <maranda@lightwitch.org>
parents: 976
diff changeset
7 local hosts = prosody.hosts;
976
0428009c1127 mod_muc_log: some cleanup and code refactor also force the plugin storage driver being internal.
Marco Cirillo <maranda@lightwitch.org>
parents: 103
diff changeset
8 local tostring = tostring;
1032
b69e5d63a4fe mod_muc_log, mod_muc_log_http: backport changes from Metronome.
Marco Cirillo <maranda@lightwitch.org>
parents: 1004
diff changeset
9 local split_jid = require "util.jid".split;
1134
0664f8b783fd mod_muc_log: Clean up some unused imports and variables
Kim Alvefur <zash@zash.se>
parents: 1133
diff changeset
10 local datamanager = require"core.storagemanager".olddm;
0664f8b783fd mod_muc_log: Clean up some unused imports and variables
Kim Alvefur <zash@zash.se>
parents: 1133
diff changeset
11 local data_load, data_store = datamanager.load, datamanager.store;
62
0dfd65bfedb0 mod_muc_log: using datamanager to store the logging.
Thilo Cestonaro <thilo@cestona.ro>
parents: 61
diff changeset
12 local datastore = "muc_log";
1104
34c86e4d6c9d mod_muc_log: Add a room config option for logging
Kim Alvefur <zash@zash.se>
parents: 1050
diff changeset
13 local muc_form_config_option = "muc#roomconfig_enablelogging"
976
0428009c1127 mod_muc_log: some cleanup and code refactor also force the plugin storage driver being internal.
Marco Cirillo <maranda@lightwitch.org>
parents: 103
diff changeset
14
1105
7837a5f7c10d mod_muc_log: Don't change defaults across versions!
Kim Alvefur <zash@zash.se>
parents: 1104
diff changeset
15 local log_presences = module:get_option_boolean("muc_log_presences", true);
50
a96d3f37d845 mod_muclogging: with http_server part for viewing
Thilo Cestonaro <thilo@cestona.ro>
parents: 47
diff changeset
16
976
0428009c1127 mod_muc_log: some cleanup and code refactor also force the plugin storage driver being internal.
Marco Cirillo <maranda@lightwitch.org>
parents: 103
diff changeset
17 -- Module Definitions
0428009c1127 mod_muc_log: some cleanup and code refactor also force the plugin storage driver being internal.
Marco Cirillo <maranda@lightwitch.org>
parents: 103
diff changeset
18
1134
0664f8b783fd mod_muc_log: Clean up some unused imports and variables
Kim Alvefur <zash@zash.se>
parents: 1133
diff changeset
19 function log_if_needed(event)
0664f8b783fd mod_muc_log: Clean up some unused imports and variables
Kim Alvefur <zash@zash.se>
parents: 1133
diff changeset
20 local stanza = event.stanza;
50
a96d3f37d845 mod_muclogging: with http_server part for viewing
Thilo Cestonaro <thilo@cestona.ro>
parents: 47
diff changeset
21
61
e609da067e9f mod_muc_log: display room's current title; show kicked messages with and without reason
Thilo Cestonaro <thilo@cestona.ro>
parents: 60
diff changeset
22 if (stanza.name == "presence") or
e609da067e9f mod_muc_log: display room's current title; show kicked messages with and without reason
Thilo Cestonaro <thilo@cestona.ro>
parents: 60
diff changeset
23 (stanza.name == "iq") or
55
d9749ed44f6e mod_muc_log: make it recognize s2s messages/presences
Thilo Cestonaro <thilo@cestona.ro>
parents: 54
diff changeset
24 (stanza.name == "message" and tostring(stanza.attr.type) == "groupchat")
47
99ff520519fe mod_muclogging: initial checkin
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
25 then
1032
b69e5d63a4fe mod_muc_log, mod_muc_log_http: backport changes from Metronome.
Marco Cirillo <maranda@lightwitch.org>
parents: 1004
diff changeset
26 local node, host = split_jid(stanza.attr.to);
1004
290c21a5e0ee mod_muc_log, mod_muc_log_http: cleanup syntax (off with the "~= nil"), and cut down wild table indexing.
Marco Cirillo <maranda@lightwitch.org>
parents: 976
diff changeset
27 local muc = hosts[host].muc;
290c21a5e0ee mod_muc_log, mod_muc_log_http: cleanup syntax (off with the "~= nil"), and cut down wild table indexing.
Marco Cirillo <maranda@lightwitch.org>
parents: 976
diff changeset
28 if node and host then
47
99ff520519fe mod_muclogging: initial checkin
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
29 local bare = node .. "@" .. host;
1004
290c21a5e0ee mod_muc_log, mod_muc_log_http: cleanup syntax (off with the "~= nil"), and cut down wild table indexing.
Marco Cirillo <maranda@lightwitch.org>
parents: 976
diff changeset
30 if muc and muc.rooms[bare] then
290c21a5e0ee mod_muc_log, mod_muc_log_http: cleanup syntax (off with the "~= nil"), and cut down wild table indexing.
Marco Cirillo <maranda@lightwitch.org>
parents: 976
diff changeset
31 local room = muc.rooms[bare]
55
d9749ed44f6e mod_muc_log: make it recognize s2s messages/presences
Thilo Cestonaro <thilo@cestona.ro>
parents: 54
diff changeset
32 local today = os.date("%y%m%d");
d9749ed44f6e mod_muc_log: make it recognize s2s messages/presences
Thilo Cestonaro <thilo@cestona.ro>
parents: 54
diff changeset
33 local now = os.date("%X")
1032
b69e5d63a4fe mod_muc_log, mod_muc_log_http: backport changes from Metronome.
Marco Cirillo <maranda@lightwitch.org>
parents: 1004
diff changeset
34 local muc_to = nil
b69e5d63a4fe mod_muc_log, mod_muc_log_http: backport changes from Metronome.
Marco Cirillo <maranda@lightwitch.org>
parents: 1004
diff changeset
35 local muc_from = nil;
b69e5d63a4fe mod_muc_log, mod_muc_log_http: backport changes from Metronome.
Marco Cirillo <maranda@lightwitch.org>
parents: 1004
diff changeset
36 local already_joined = false;
85
83494de806a4 mod_muc_log: Do not log other muc-component's rooms then the module was loaded for. Do neither log nor provide access to possible existing log if a room is private. (thx flo for spotting this)
Thilo Cestonaro <thilo@cestona.ro>
parents: 81
diff changeset
37
83494de806a4 mod_muc_log: Do not log other muc-component's rooms then the module was loaded for. Do neither log nor provide access to possible existing log if a room is private. (thx flo for spotting this)
Thilo Cestonaro <thilo@cestona.ro>
parents: 81
diff changeset
38 if room._data.hidden then -- do not log any data of private rooms
83494de806a4 mod_muc_log: Do not log other muc-component's rooms then the module was loaded for. Do neither log nor provide access to possible existing log if a room is private. (thx flo for spotting this)
Thilo Cestonaro <thilo@cestona.ro>
parents: 81
diff changeset
39 return;
83494de806a4 mod_muc_log: Do not log other muc-component's rooms then the module was loaded for. Do neither log nor provide access to possible existing log if a room is private. (thx flo for spotting this)
Thilo Cestonaro <thilo@cestona.ro>
parents: 81
diff changeset
40 end
1032
b69e5d63a4fe mod_muc_log, mod_muc_log_http: backport changes from Metronome.
Marco Cirillo <maranda@lightwitch.org>
parents: 1004
diff changeset
41 if not room._data.logging then -- do not log where logging is not enabled
b69e5d63a4fe mod_muc_log, mod_muc_log_http: backport changes from Metronome.
Marco Cirillo <maranda@lightwitch.org>
parents: 1004
diff changeset
42 return;
b69e5d63a4fe mod_muc_log, mod_muc_log_http: backport changes from Metronome.
Marco Cirillo <maranda@lightwitch.org>
parents: 1004
diff changeset
43 end
85
83494de806a4 mod_muc_log: Do not log other muc-component's rooms then the module was loaded for. Do neither log nor provide access to possible existing log if a room is private. (thx flo for spotting this)
Thilo Cestonaro <thilo@cestona.ro>
parents: 81
diff changeset
44
55
d9749ed44f6e mod_muc_log: make it recognize s2s messages/presences
Thilo Cestonaro <thilo@cestona.ro>
parents: 54
diff changeset
45 if stanza.name == "presence" and stanza.attr.type == nil then
1032
b69e5d63a4fe mod_muc_log, mod_muc_log_http: backport changes from Metronome.
Marco Cirillo <maranda@lightwitch.org>
parents: 1004
diff changeset
46 muc_from = stanza.attr.to;
b69e5d63a4fe mod_muc_log, mod_muc_log_http: backport changes from Metronome.
Marco Cirillo <maranda@lightwitch.org>
parents: 1004
diff changeset
47 if room._occupants and room._occupants[stanza.attr.to] then
b69e5d63a4fe mod_muc_log, mod_muc_log_http: backport changes from Metronome.
Marco Cirillo <maranda@lightwitch.org>
parents: 1004
diff changeset
48 already_joined = true;
b69e5d63a4fe mod_muc_log, mod_muc_log_http: backport changes from Metronome.
Marco Cirillo <maranda@lightwitch.org>
parents: 1004
diff changeset
49 stanza:tag("alreadyJoined"):text("true");
61
e609da067e9f mod_muc_log: display room's current title; show kicked messages with and without reason
Thilo Cestonaro <thilo@cestona.ro>
parents: 60
diff changeset
50 end
e609da067e9f mod_muc_log: display room's current title; show kicked messages with and without reason
Thilo Cestonaro <thilo@cestona.ro>
parents: 60
diff changeset
51 elseif stanza.name == "iq" and stanza.attr.type == "set" then -- kick, to is the room, from is the admin, nick who is kicked is attr of iq->query->item
1004
290c21a5e0ee mod_muc_log, mod_muc_log_http: cleanup syntax (off with the "~= nil"), and cut down wild table indexing.
Marco Cirillo <maranda@lightwitch.org>
parents: 976
diff changeset
52 if stanza.tags[1] and stanza.tags[1].name == "query" then
61
e609da067e9f mod_muc_log: display room's current title; show kicked messages with and without reason
Thilo Cestonaro <thilo@cestona.ro>
parents: 60
diff changeset
53 local tmp = stanza.tags[1];
1004
290c21a5e0ee mod_muc_log, mod_muc_log_http: cleanup syntax (off with the "~= nil"), and cut down wild table indexing.
Marco Cirillo <maranda@lightwitch.org>
parents: 976
diff changeset
54 if tmp.tags[1] ~= nil and tmp.tags[1].name == "item" and tmp.tags[1].attr.nick then
61
e609da067e9f mod_muc_log: display room's current title; show kicked messages with and without reason
Thilo Cestonaro <thilo@cestona.ro>
parents: 60
diff changeset
55 tmp = tmp.tags[1];
e609da067e9f mod_muc_log: display room's current title; show kicked messages with and without reason
Thilo Cestonaro <thilo@cestona.ro>
parents: 60
diff changeset
56 for jid, nick in pairs(room._jid_nick) do
e609da067e9f mod_muc_log: display room's current title; show kicked messages with and without reason
Thilo Cestonaro <thilo@cestona.ro>
parents: 60
diff changeset
57 if nick == stanza.attr.to .. "/" .. tmp.attr.nick then
1032
b69e5d63a4fe mod_muc_log, mod_muc_log_http: backport changes from Metronome.
Marco Cirillo <maranda@lightwitch.org>
parents: 1004
diff changeset
58 muc_to = nick;
61
e609da067e9f mod_muc_log: display room's current title; show kicked messages with and without reason
Thilo Cestonaro <thilo@cestona.ro>
parents: 60
diff changeset
59 break;
e609da067e9f mod_muc_log: display room's current title; show kicked messages with and without reason
Thilo Cestonaro <thilo@cestona.ro>
parents: 60
diff changeset
60 end
e609da067e9f mod_muc_log: display room's current title; show kicked messages with and without reason
Thilo Cestonaro <thilo@cestona.ro>
parents: 60
diff changeset
61 end
e609da067e9f mod_muc_log: display room's current title; show kicked messages with and without reason
Thilo Cestonaro <thilo@cestona.ro>
parents: 60
diff changeset
62 end
e609da067e9f mod_muc_log: display room's current title; show kicked messages with and without reason
Thilo Cestonaro <thilo@cestona.ro>
parents: 60
diff changeset
63 end
55
d9749ed44f6e mod_muc_log: make it recognize s2s messages/presences
Thilo Cestonaro <thilo@cestona.ro>
parents: 54
diff changeset
64 else
d9749ed44f6e mod_muc_log: make it recognize s2s messages/presences
Thilo Cestonaro <thilo@cestona.ro>
parents: 54
diff changeset
65 for jid, nick in pairs(room._jid_nick) do
d9749ed44f6e mod_muc_log: make it recognize s2s messages/presences
Thilo Cestonaro <thilo@cestona.ro>
parents: 54
diff changeset
66 if jid == stanza.attr.from then
1032
b69e5d63a4fe mod_muc_log, mod_muc_log_http: backport changes from Metronome.
Marco Cirillo <maranda@lightwitch.org>
parents: 1004
diff changeset
67 muc_from = nick;
61
e609da067e9f mod_muc_log: display room's current title; show kicked messages with and without reason
Thilo Cestonaro <thilo@cestona.ro>
parents: 60
diff changeset
68 break;
47
99ff520519fe mod_muclogging: initial checkin
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
69 end
99ff520519fe mod_muclogging: initial checkin
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
70 end
55
d9749ed44f6e mod_muc_log: make it recognize s2s messages/presences
Thilo Cestonaro <thilo@cestona.ro>
parents: 54
diff changeset
71 end
47
99ff520519fe mod_muclogging: initial checkin
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
72
1032
b69e5d63a4fe mod_muc_log, mod_muc_log_http: backport changes from Metronome.
Marco Cirillo <maranda@lightwitch.org>
parents: 1004
diff changeset
73 if (muc_from or muc_to) then
62
0dfd65bfedb0 mod_muc_log: using datamanager to store the logging.
Thilo Cestonaro <thilo@cestona.ro>
parents: 61
diff changeset
74 local data = data_load(node, host, datastore .. "/" .. today);
55
d9749ed44f6e mod_muc_log: make it recognize s2s messages/presences
Thilo Cestonaro <thilo@cestona.ro>
parents: 54
diff changeset
75 local realFrom = stanza.attr.from;
d9749ed44f6e mod_muc_log: make it recognize s2s messages/presences
Thilo Cestonaro <thilo@cestona.ro>
parents: 54
diff changeset
76 local realTo = stanza.attr.to;
62
0dfd65bfedb0 mod_muc_log: using datamanager to store the logging.
Thilo Cestonaro <thilo@cestona.ro>
parents: 61
diff changeset
77
0dfd65bfedb0 mod_muc_log: using datamanager to store the logging.
Thilo Cestonaro <thilo@cestona.ro>
parents: 61
diff changeset
78 if data == nil then
0dfd65bfedb0 mod_muc_log: using datamanager to store the logging.
Thilo Cestonaro <thilo@cestona.ro>
parents: 61
diff changeset
79 data = {};
0dfd65bfedb0 mod_muc_log: using datamanager to store the logging.
Thilo Cestonaro <thilo@cestona.ro>
parents: 61
diff changeset
80 end
0dfd65bfedb0 mod_muc_log: using datamanager to store the logging.
Thilo Cestonaro <thilo@cestona.ro>
parents: 61
diff changeset
81
1032
b69e5d63a4fe mod_muc_log, mod_muc_log_http: backport changes from Metronome.
Marco Cirillo <maranda@lightwitch.org>
parents: 1004
diff changeset
82 stanza.attr.from = muc_from;
b69e5d63a4fe mod_muc_log, mod_muc_log_http: backport changes from Metronome.
Marco Cirillo <maranda@lightwitch.org>
parents: 1004
diff changeset
83 stanza.attr.to = muc_to;
62
0dfd65bfedb0 mod_muc_log: using datamanager to store the logging.
Thilo Cestonaro <thilo@cestona.ro>
parents: 61
diff changeset
84 data[#data + 1] = "<stanza time=\"".. now .. "\">" .. tostring(stanza) .. "</stanza>\n";
55
d9749ed44f6e mod_muc_log: make it recognize s2s messages/presences
Thilo Cestonaro <thilo@cestona.ro>
parents: 54
diff changeset
85 stanza.attr.from = realFrom;
d9749ed44f6e mod_muc_log: make it recognize s2s messages/presences
Thilo Cestonaro <thilo@cestona.ro>
parents: 54
diff changeset
86 stanza.attr.to = realTo;
1032
b69e5d63a4fe mod_muc_log, mod_muc_log_http: backport changes from Metronome.
Marco Cirillo <maranda@lightwitch.org>
parents: 1004
diff changeset
87 if already_joined == true then
61
e609da067e9f mod_muc_log: display room's current title; show kicked messages with and without reason
Thilo Cestonaro <thilo@cestona.ro>
parents: 60
diff changeset
88 if stanza[#stanza].name == "alreadyJoined" then -- normaly the faked element should be the last, remove it when it is the last
e609da067e9f mod_muc_log: display room's current title; show kicked messages with and without reason
Thilo Cestonaro <thilo@cestona.ro>
parents: 60
diff changeset
89 stanza[#stanza] = nil;
e609da067e9f mod_muc_log: display room's current title; show kicked messages with and without reason
Thilo Cestonaro <thilo@cestona.ro>
parents: 60
diff changeset
90 else
e609da067e9f mod_muc_log: display room's current title; show kicked messages with and without reason
Thilo Cestonaro <thilo@cestona.ro>
parents: 60
diff changeset
91 for i = 1, #stanza, 1 do
e609da067e9f mod_muc_log: display room's current title; show kicked messages with and without reason
Thilo Cestonaro <thilo@cestona.ro>
parents: 60
diff changeset
92 if stanza[i].name == "alreadyJoined" then -- remove the faked element
e609da067e9f mod_muc_log: display room's current title; show kicked messages with and without reason
Thilo Cestonaro <thilo@cestona.ro>
parents: 60
diff changeset
93 stanza[i] = nil;
e609da067e9f mod_muc_log: display room's current title; show kicked messages with and without reason
Thilo Cestonaro <thilo@cestona.ro>
parents: 60
diff changeset
94 break;
e609da067e9f mod_muc_log: display room's current title; show kicked messages with and without reason
Thilo Cestonaro <thilo@cestona.ro>
parents: 60
diff changeset
95 end
e609da067e9f mod_muc_log: display room's current title; show kicked messages with and without reason
Thilo Cestonaro <thilo@cestona.ro>
parents: 60
diff changeset
96 end
e609da067e9f mod_muc_log: display room's current title; show kicked messages with and without reason
Thilo Cestonaro <thilo@cestona.ro>
parents: 60
diff changeset
97 end
e609da067e9f mod_muc_log: display room's current title; show kicked messages with and without reason
Thilo Cestonaro <thilo@cestona.ro>
parents: 60
diff changeset
98 end
62
0dfd65bfedb0 mod_muc_log: using datamanager to store the logging.
Thilo Cestonaro <thilo@cestona.ro>
parents: 61
diff changeset
99 data_store(node, host, datastore .. "/" .. today, data);
47
99ff520519fe mod_muclogging: initial checkin
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
100 end
99ff520519fe mod_muclogging: initial checkin
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
101 end
99ff520519fe mod_muclogging: initial checkin
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
102 end
99ff520519fe mod_muclogging: initial checkin
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
103 end
61
e609da067e9f mod_muc_log: display room's current title; show kicked messages with and without reason
Thilo Cestonaro <thilo@cestona.ro>
parents: 60
diff changeset
104 end
e609da067e9f mod_muc_log: display room's current title; show kicked messages with and without reason
Thilo Cestonaro <thilo@cestona.ro>
parents: 60
diff changeset
105
1104
34c86e4d6c9d mod_muc_log: Add a room config option for logging
Kim Alvefur <zash@zash.se>
parents: 1050
diff changeset
106 module:hook("muc-config-form", function(event)
34c86e4d6c9d mod_muc_log: Add a room config option for logging
Kim Alvefur <zash@zash.se>
parents: 1050
diff changeset
107 local room, form = event.room, event.form;
34c86e4d6c9d mod_muc_log: Add a room config option for logging
Kim Alvefur <zash@zash.se>
parents: 1050
diff changeset
108 table.insert(form,
34c86e4d6c9d mod_muc_log: Add a room config option for logging
Kim Alvefur <zash@zash.se>
parents: 1050
diff changeset
109 {
34c86e4d6c9d mod_muc_log: Add a room config option for logging
Kim Alvefur <zash@zash.se>
parents: 1050
diff changeset
110 name = muc_form_config_option,
34c86e4d6c9d mod_muc_log: Add a room config option for logging
Kim Alvefur <zash@zash.se>
parents: 1050
diff changeset
111 type = "boolean",
34c86e4d6c9d mod_muc_log: Add a room config option for logging
Kim Alvefur <zash@zash.se>
parents: 1050
diff changeset
112 label = "Enable Logging?",
34c86e4d6c9d mod_muc_log: Add a room config option for logging
Kim Alvefur <zash@zash.se>
parents: 1050
diff changeset
113 value = room._data.logging or false,
34c86e4d6c9d mod_muc_log: Add a room config option for logging
Kim Alvefur <zash@zash.se>
parents: 1050
diff changeset
114 }
34c86e4d6c9d mod_muc_log: Add a room config option for logging
Kim Alvefur <zash@zash.se>
parents: 1050
diff changeset
115 );
34c86e4d6c9d mod_muc_log: Add a room config option for logging
Kim Alvefur <zash@zash.se>
parents: 1050
diff changeset
116 end);
34c86e4d6c9d mod_muc_log: Add a room config option for logging
Kim Alvefur <zash@zash.se>
parents: 1050
diff changeset
117
34c86e4d6c9d mod_muc_log: Add a room config option for logging
Kim Alvefur <zash@zash.se>
parents: 1050
diff changeset
118 module:hook("muc-config-submitted", function(event)
34c86e4d6c9d mod_muc_log: Add a room config option for logging
Kim Alvefur <zash@zash.se>
parents: 1050
diff changeset
119 local room, fields, changed = event.room, event.fields, event.changed;
34c86e4d6c9d mod_muc_log: Add a room config option for logging
Kim Alvefur <zash@zash.se>
parents: 1050
diff changeset
120 local new = fields[muc_form_config_option];
34c86e4d6c9d mod_muc_log: Add a room config option for logging
Kim Alvefur <zash@zash.se>
parents: 1050
diff changeset
121 if new ~= room._data.logging then
34c86e4d6c9d mod_muc_log: Add a room config option for logging
Kim Alvefur <zash@zash.se>
parents: 1050
diff changeset
122 room._data.logging = new;
34c86e4d6c9d mod_muc_log: Add a room config option for logging
Kim Alvefur <zash@zash.se>
parents: 1050
diff changeset
123 if type(changed) == "table" then
34c86e4d6c9d mod_muc_log: Add a room config option for logging
Kim Alvefur <zash@zash.se>
parents: 1050
diff changeset
124 changed[muc_form_config_option] = true;
34c86e4d6c9d mod_muc_log: Add a room config option for logging
Kim Alvefur <zash@zash.se>
parents: 1050
diff changeset
125 else
34c86e4d6c9d mod_muc_log: Add a room config option for logging
Kim Alvefur <zash@zash.se>
parents: 1050
diff changeset
126 event.changed = true;
34c86e4d6c9d mod_muc_log: Add a room config option for logging
Kim Alvefur <zash@zash.se>
parents: 1050
diff changeset
127 end
34c86e4d6c9d mod_muc_log: Add a room config option for logging
Kim Alvefur <zash@zash.se>
parents: 1050
diff changeset
128 end
34c86e4d6c9d mod_muc_log: Add a room config option for logging
Kim Alvefur <zash@zash.se>
parents: 1050
diff changeset
129 end);
34c86e4d6c9d mod_muc_log: Add a room config option for logging
Kim Alvefur <zash@zash.se>
parents: 1050
diff changeset
130
1037
892272432703 mod_muc_log: Fix mistake in previous merge (thanks Maranda)
Matthew Wild <mwild1@gmail.com>
parents: 1034
diff changeset
131 module:hook("message/bare", log_if_needed, 1);
1050
a0aff903659b mod_muc_log: don't log iqs either if presences are disabled, little use and may trigger "false positives".
Marco Cirillo <maranda@lightwitch.org>
parents: 1041
diff changeset
132 if log_presences then
a0aff903659b mod_muc_log: don't log iqs either if presences are disabled, little use and may trigger "false positives".
Marco Cirillo <maranda@lightwitch.org>
parents: 1041
diff changeset
133 module:hook("iq/bare", log_if_needed, 1);
a0aff903659b mod_muc_log: don't log iqs either if presences are disabled, little use and may trigger "false positives".
Marco Cirillo <maranda@lightwitch.org>
parents: 1041
diff changeset
134 module:hook("presence/full", log_if_needed, 1);
a0aff903659b mod_muc_log: don't log iqs either if presences are disabled, little use and may trigger "false positives".
Marco Cirillo <maranda@lightwitch.org>
parents: 1041
diff changeset
135 end
103
0491aa849c91 mod_muc_log: make that it logs again
Thilo Cestonaro <thilo@cestona.ro>
parents: 94
diff changeset
136
94
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents: 90
diff changeset
137 module:log("debug", "module mod_muc_log loaded!");