Diff

mod_muc_log/mod_muc_log.lua @ 1004:290c21a5e0ee

mod_muc_log, mod_muc_log_http: cleanup syntax (off with the "~= nil"), and cut down wild table indexing.
author Marco Cirillo <maranda@lightwitch.org>
date Thu, 09 May 2013 02:13:09 +0200
parent 976:0428009c1127
child 1032:b69e5d63a4fe
line wrap: on
line diff
--- a/mod_muc_log/mod_muc_log.lua	Wed May 08 23:30:50 2013 +0100
+++ b/mod_muc_log/mod_muc_log.lua	Thu May 09 02:13:09 2013 +0200
@@ -1,4 +1,5 @@
 local prosody = prosody;
+local hosts = prosody.hosts;
 local tostring = tostring;
 local splitJid = require "util.jid".split;
 local cm = require "core.configmanager";
@@ -36,11 +37,12 @@
 		(stanza.name == "iq") or
 	   	(stanza.name == "message" and tostring(stanza.attr.type) == "groupchat")
 	then
-		local node, host, resource = splitJid(stanza.attr.to);
-		if node ~= nil and host ~= nil then
+		local node, host = splitJid(stanza.attr.to);
+		local muc = hosts[host].muc;
+		if node and host then
 			local bare = node .. "@" .. host;
-			if host == mod_host and prosody.hosts[host] ~= nil and prosody.hosts[host].muc ~= nil and prosody.hosts[host].muc.rooms[bare] ~= nil then
-				local room = prosody.hosts[host].muc.rooms[bare]
+			if muc and muc.rooms[bare] then
+				local room = muc.rooms[bare]
 				local today = os.date("%y%m%d");
 				local now = os.date("%X")
 				local mucTo = nil
@@ -53,14 +55,14 @@
 				
 				if stanza.name == "presence" and stanza.attr.type == nil then
 					mucFrom = stanza.attr.to;
-					if room._occupants ~= nil and room._occupants[stanza.attr.to] ~= nil then -- if true, the user has already joined the room
+					if room._occupants and room._occupants[stanza.attr.to] then -- if true, the user has already joined the room
 						alreadyJoined = true;
 						stanza:tag("alreadyJoined"):text("true"); -- we need to log the information that the user has already joined, so add this and remove after logging
 					end
 				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
-					if stanza.tags[1] ~= nil and stanza.tags[1].name == "query" then
+					if stanza.tags[1] and stanza.tags[1].name == "query" then
 						local tmp = stanza.tags[1];
-						if tmp.tags[1] ~= nil and tmp.tags[1].name == "item" and tmp.tags[1].attr.nick ~= nil then
+						if tmp.tags[1] ~= nil and tmp.tags[1].name == "item" and tmp.tags[1].attr.nick then
 							tmp = tmp.tags[1];
 							for jid, nick in pairs(room._jid_nick) do
 								if nick == stanza.attr.to .. "/" .. tmp.attr.nick then
@@ -79,7 +81,7 @@
 					end
 				end
 
-				if (mucFrom ~= nil or mucTo ~= nil) then
+				if (mucFrom or mucTo) then
 					local data = data_load(node, host, datastore .. "/" .. today);
 					local realFrom = stanza.attr.from;
 					local realTo = stanza.attr.to;