diff mod_post_msg/mod_post_msg.lua @ 1302:e556219cb43d

mod_post_msg: add support for HTML messages
author Christian Weiske <cweiske@cweiske.de>
date Fri, 14 Feb 2014 15:08:11 +0100
parents a6c8f252e5fa
children 9b6fbababb8c
line wrap: on
line diff
--- a/mod_post_msg/mod_post_msg.lua	Sat Feb 08 16:59:10 2014 +0100
+++ b/mod_post_msg/mod_post_msg.lua	Fri Feb 14 15:08:11 2014 +0100
@@ -6,6 +6,7 @@
 local test_password = require "core.usermanager".test_password;
 local b64_decode = require "util.encodings".base64.decode;
 local formdecode = require "net.http".formdecode;
+local xml = require"util.xml";
 
 local function require_valid_user(f)
 	return function(event, path)
@@ -46,8 +47,16 @@
 		end
 	elseif body_type == "application/x-www-form-urlencoded" then
 		local post_body = formdecode(request.body);
-			message = msg({ to = post_body.to or to, from = authed_user,
+		message = msg({ to = post_body.to or to, from = authed_user,
 				type = post_body.type or "chat"}, post_body.body);
+		if post_body.html then
+		   local html, err = xml.parse(post_body.html);
+		   if not html then
+		      module:log("warn", "mod_post_msg: invalid XML: %s", err);
+		      return 400;
+		   end
+		   message:tag("html", {xmlns="http://jabber.org/protocol/xhtml-im"}):add_child(html):up();
+		end
 	else
 		return 415;
 	end