diff plugins/mod_scansion_record.lua @ 9621:f85e12d9eede

Merge 0.11->trunk
author Kim Alvefur <zash@zash.se>
date Mon, 12 Nov 2018 18:26:39 +0100
parents 7172077c0a53
children d229e4d31598
line wrap: on
line diff
--- a/plugins/mod_scansion_record.lua	Sun Nov 11 02:31:09 2018 +0100
+++ b/plugins/mod_scansion_record.lua	Mon Nov 12 18:26:39 2018 +0100
@@ -6,6 +6,7 @@
 local id = require "util.id";
 local dt = require "util.datetime";
 local dm = require "util.datamanager";
+local st = require "util.stanza";
 
 local record_id = id.medium():lower();
 local record_date = os.date("%Y%b%d"):lower();
@@ -36,12 +37,16 @@
 end
 
 local function record_stanza(stanza, session, verb)
-	record(session.scansion_id.." "..verb..":\n\t"..tostring(stanza).."\n\n");
+	local flattened = tostring(stanza):gsub("><", ">\n\t<");
+	-- TODO Proper prettyprinting with indentation
+	record(session.scansion_id.." "..verb..":\n\t"..flattened.."\n\n");
 end
 
 local function record_stanza_in(stanza, session)
 	if stanza.attr.xmlns == nil then
-		record_stanza(stanza, session, "sends")
+		local copy = st.clone(stanza);
+		copy.attr.from = nil;
+		record_stanza(copy, session, "sends")
 	end
 	return stanza;
 end
@@ -49,7 +54,11 @@
 local function record_stanza_out(stanza, session)
 	if stanza.attr.xmlns == nil then
 		if not (stanza.name == "iq" and stanza:get_child("bind", "urn:ietf:params:xml:ns:xmpp-bind")) then
-			record_stanza(stanza, session, "receives");
+			local copy = st.clone(stanza);
+			if copy.attr.to == session.full_jid then
+				copy.attr.to = nil;
+			end
+			record_stanza(copy, session, "receives");
 		end
 	end
 	return stanza;