# HG changeset patch # User Kim Alvefur # Date 1600614360 -7200 # Node ID 3a06dea21ea156287aacb7c5e74ab6e3f3998b43 # Parent bebc5740fc16af7bd5efcc1c0b958c343c24332d mod_conversejs: Enable serving resources from built-in http server This enables using release archives or locally built Converse.js diff -r bebc5740fc16 -r 3a06dea21ea1 mod_conversejs/README.markdown --- a/mod_conversejs/README.markdown Sun Sep 20 15:57:04 2020 +0100 +++ b/mod_conversejs/README.markdown Sun Sep 20 17:06:00 2020 +0200 @@ -91,11 +91,21 @@ `mod_bosh` and/or `mod_websocket` are automatically enabled if available and the respective endpoint is included in the generated options. -Loading resources ------------------ +## Loading resources + +By default the module will load the main script and CSS from +cdn.conversejs.org. For privacy or performance reasons you may want to +load the scripts from somewhere else. -By default the module will load the main script and CSS from cdn.conversejs.org. For privacy or performance -reasons you may want to load the scripts from somewhere else, simply use the conversejs_cdn option: +To use a local distribution or build of Converse.js set +conversejs_resources to the local path of "dist" directory: + +``` {.lua} +conversejs_resources = "/usr/src/conversejs/dist"; +``` + +To use a different web server or CDN simply use the conversejs_cdn +option: ``` {.lua} conversejs_cdn = "https://cdn.example.com" diff -r bebc5740fc16 -r 3a06dea21ea1 mod_conversejs/mod_conversejs.lua --- a/mod_conversejs/mod_conversejs.lua Sun Sep 20 15:57:04 2020 +0100 +++ b/mod_conversejs/mod_conversejs.lua Sun Sep 20 17:06:00 2020 +0200 @@ -23,6 +23,25 @@ local version = module:get_option_string("conversejs_version", ""); if version ~= "" then version = "/" .. version end + +local serve_dist = nil; +local resources = module:get_option_path("conversejs_resources"); +if resources then + local serve; + if not pcall(function() + -- Prosody >= trunk / 0.12 + local http_files = require "net.http.files"; + serve = http_files.serve; + end) then + -- Prosody <= 0.11 + serve = module:depends "http_files".serve; + end + local mime_map = module:shared("/*/http_files/mime").types or {css = "text/css"; js = "application/javascript"}; + serve_dist = serve({path = resources; mime_map = mime_map}); + + cdn_url = module:http_url(); +end + local js_url = module:get_option_string("conversejs_script", cdn_url..version.."/dist/converse.min.js"); local css_url = module:get_option_string("conversejs_css", cdn_url..version.."/dist/converse.min.css"); @@ -112,6 +131,7 @@ event.response.headers.content_type = "application/javascript"; return js_template:format(json_encode(converse_options)); end; + ["GET /dist/*"] = serve_dist; } });