170 local arg = require "util.argparse".parse(arg_, { |
170 local arg = require "util.argparse".parse(arg_, { |
171 value_params = { "limit" }; |
171 value_params = { "limit" }; |
172 }); |
172 }); |
173 |
173 |
174 module:log("debug", "arg = %q", arg); |
174 module:log("debug", "arg = %q", arg); |
175 local query_user, host = jid.prepped_split(arg[1]); |
175 local query_jid = jid.prep(arg[1]); |
|
176 local host = jid.host(query_jid); |
176 |
177 |
177 if arg.prune then |
178 if arg.prune then |
178 local sm = require "core.storagemanager"; |
179 local sm = require "core.storagemanager"; |
179 if host then |
180 if host then |
180 sm.initialize_host(host); |
181 sm.initialize_host(host); |
199 require "core.storagemanager".initialize_host(host); |
200 require "core.storagemanager".initialize_host(host); |
200 local store = stores[host]; |
201 local store = stores[host]; |
201 local c = 0; |
202 local c = 0; |
202 |
203 |
203 if arg.global then |
204 if arg.global then |
204 if query_user then |
205 if jid.node(query_jid) then |
205 print("WW: Specifying a user account is incompatible with --global. Showing only global events."); |
206 print("WW: Specifying a user account is incompatible with --global. Showing only global events."); |
206 end |
207 end |
207 query_user = "@"; |
208 query_jid = "@"; |
|
209 elseif host == query_jid then |
|
210 query_jid = "@"; |
208 end |
211 end |
209 |
212 |
210 local results, err = store:find(nil, { |
213 local results, err = store:find(nil, { |
211 with = query_user; |
214 with = query_jid; |
212 limit = arg.limit and tonumber(arg.limit) or nil; |
215 limit = arg.limit and tonumber(arg.limit) or nil; |
213 reverse = true; |
216 reverse = true; |
214 }) |
217 }) |
215 if not results then |
218 if not results then |
216 print("EE: Failed to query audit log: "..tostring(err)); |
219 print("EE: Failed to query audit log: "..tostring(err)); |
221 { title = "Date", key = "when", width = 19, mapper = function (when) return os.date("%Y-%m-%d %R:%S", when); end }; |
224 { title = "Date", key = "when", width = 19, mapper = function (when) return os.date("%Y-%m-%d %R:%S", when); end }; |
222 { title = "Source", key = "source", width = "2p" }; |
225 { title = "Source", key = "source", width = "2p" }; |
223 { title = "Event", key = "event_type", width = "2p" }; |
226 { title = "Event", key = "event_type", width = "2p" }; |
224 }; |
227 }; |
225 |
228 |
226 if arg.show_user ~= false and (not arg.global and not query_user) or arg.show_user then |
229 if arg.show_user ~= false and (not arg.global and not query_jid) or arg.show_user then |
227 table.insert(colspec, { |
230 table.insert(colspec, { |
228 title = "User", key = "username", width = "2p", |
231 title = "User", key = "username", width = "2p", |
229 mapper = function (user) |
232 mapper = function (user) |
230 if user == "@" then return ""; end |
233 if user == "@" then return ""; end |
231 if user:sub(-#host-1, -1) == ("@"..host) then |
234 if user:sub(-#host-1, -1) == ("@"..host) then |