comparison mod_muc_log/mod_muc_log.lua @ 86:fc7055efd568

mod_muc_log: retrieving the room config, is not a kick of a person!! :) (thx again to flo spotting it!)
author Thilo Cestonaro <thilo@cestona.ro>
date Sun, 08 Nov 2009 22:10:42 +0100
parents 83494de806a4
children 0e639d081ba7
comparison
equal deleted inserted replaced
85:83494de806a4 86:fc7055efd568
302 end 302 end
303 end 303 end
304 304
305 local function parseIqStanza(stanza, timeStuff, nick) 305 local function parseIqStanza(stanza, timeStuff, nick)
306 local text = nil; 306 local text = nil;
307 for _,tag in ipairs(stanza) do 307 local victim = nil;
308 if tag.tag == "query" then 308 if(stanza.attr.type == "set") then
309 for _,item in ipairs(tag) do 309 for _,tag in ipairs(stanza) do
310 if item.tag == "item" then 310 if tag.tag == "query" then
311 for _,reason in ipairs(item) do 311 for _,item in ipairs(tag) do
312 if reason.tag == "reason" then 312 if item.tag == "item" and item.attr.nick ~= nil and tostring(item.attr.role) == 'none' then
313 text = reason[1]; 313 victim = item.attr.nick;
314 break; 314 for _,reason in ipairs(item) do
315 end 315 if reason.tag == "reason" then
316 end 316 text = reason[1];
317 break; 317 break;
318 end 318 end
319 end 319 end
320 break; 320 break;
321 end 321 end
322 end 322 end
323 323 break;
324 if text ~= nil then 324 end
325 text = html.day.reason:gsub("###REASON###", htmlEscape(text)); 325 end
326 else 326 if victim ~= nil then
327 text = ""; 327 if text ~= nil then
328 end 328 text = html.day.reason:gsub("###REASON###", htmlEscape(text));
329 return html.day.kick:gsub("###TIME_STUFF###", timeStuff):gsub("###VICTIM###", nick):gsub("###REASON_STUFF###", text); 329 else
330 text = "";
331 end
332 return html.day.kick:gsub("###TIME_STUFF###", timeStuff):gsub("###VICTIM###", victim):gsub("###REASON_STUFF###", text);
333 end
334 end
335 return;
330 end 336 end
331 337
332 local function parsePresenceStanza(stanza, timeStuff, nick) 338 local function parsePresenceStanza(stanza, timeStuff, nick)
333 local ret = ""; 339 local ret = "";
334 if stanza.attr.type == nil then 340 if stanza.attr.type == nil then
407 local stanza = lom.parse(data[i]); 413 local stanza = lom.parse(data[i]);
408 if stanza ~= nil and stanza.attr ~= nil and stanza.attr.time ~= nil then 414 if stanza ~= nil and stanza.attr ~= nil and stanza.attr.time ~= nil then
409 local timeStuff = html.day.time:gsub("###TIME###", stanza.attr.time); 415 local timeStuff = html.day.time:gsub("###TIME###", stanza.attr.time);
410 if stanza[1] ~= nil then 416 if stanza[1] ~= nil then
411 local nick; 417 local nick;
418 local tmp;
412 419
413 -- grep nick from "from" resource 420 -- grep nick from "from" resource
414 if stanza[1].attr.from ~= nil then -- presence and messages 421 if stanza[1].attr.from ~= nil then -- presence and messages
415 nick = htmlEscape(stanza[1].attr.from:match("/(.+)$")); 422 nick = htmlEscape(stanza[1].attr.from:match("/(.+)$"));
416 elseif stanza[1].attr.to ~= nil then -- iq 423 elseif stanza[1].attr.to ~= nil then -- iq
417 nick = htmlEscape(stanza[1].attr.to:match("/(.+)$")); 424 nick = htmlEscape(stanza[1].attr.to:match("/(.+)$"));
418 end 425 end
419 426
420 if stanza[1].tag == "presence" and nick ~= nil then 427 if stanza[1].tag == "presence" and nick ~= nil then
421 ret = ret .. parsePresenceStanza(stanza[1], timeStuff, nick); 428 tmp = parsePresenceStanza(stanza[1], timeStuff, nick);
422 elseif stanza[1].tag == "message" then 429 elseif stanza[1].tag == "message" then
423 ret = ret .. parseMessageStanza(stanza[1], timeStuff, nick); 430 tmp = parseMessageStanza(stanza[1], timeStuff, nick);
424 elseif stanza[1].tag == "iq" then 431 elseif stanza[1].tag == "iq" then
425 ret = ret .. parseIqStanza(stanza[1], timeStuff, nick); 432 tmp = parseIqStanza(stanza[1], timeStuff, nick);
426 else 433 else
427 module:log("info", "unknown stanza subtag in log found. room: %s; day: %s", bareRoomJid, query.year .. "/" .. query.month .. "/" .. query.day); 434 module:log("info", "unknown stanza subtag in log found. room: %s; day: %s", bareRoomJid, query.year .. "/" .. query.month .. "/" .. query.day);
435 end
436 if tmp ~= nil then
437 ret = ret .. tmp
438 tmp = nil;
428 end 439 end
429 end 440 end
430 end 441 end
431 end 442 end
432 else 443 else