mod_conversejs/mod_conversejs.lua
changeset 2661 6f5c99c9f6cc
child 2662 b0f4014cb5b4
equal deleted inserted replaced
2660:83fb61fa476e 2661:6f5c99c9f6cc
       
     1 -- mod_conversejs
       
     2 -- Copyright (C) 2017 Kim Alvefur
       
     3 
       
     4 local json_encode = require"util.json".encode;
       
     5 
       
     6 module:depends"bosh";
       
     7 
       
     8 local has_ws = pcall(function ()
       
     9 	module:depends("websocket");
       
    10 end);
       
    11 
       
    12 local serve = module:depends"http_files".serve;
       
    13 
       
    14 local template = [[
       
    15 <!DOCTYPE html>
       
    16 <meta charset="utf-8">
       
    17 <link rel="stylesheet" type="text/css" media="screen" href="https://cdn.conversejs.org/css/converse.min.css">
       
    18 <script src="https://cdn.conversejs.org/dist/converse.min.js"></script>
       
    19 <script>converse.initialize(%s);</script>
       
    20 ]]
       
    21 
       
    22 module:provides("http", {
       
    23 	route = {
       
    24 		GET = function (event)
       
    25 			event.response.headers.content_type = "text/html";
       
    26 			return template:format(json_encode({
       
    27 				-- debug = true,
       
    28 				bosh_service_url = module:http_url("bosh","/http-bind");
       
    29 				websocket_url = has_ws and module:http_url("websocket","xmpp-websocket"):gsub("^http", "ws") or nil;
       
    30 				authentication = module:get_option_string("authentication") == "anonymous" and "anonymous" or "login";
       
    31 			}));
       
    32 		end;
       
    33 	}
       
    34 });
       
    35