author | Kim Alvefur <zash@zash.se> |
Sat, 02 Mar 2024 15:11:20 +0100 | |
changeset 5856 | 133b23758cf6 |
parent 5215 | 079ca766193b |
child 5875 | 1c8197075d04 |
permissions | -rw-r--r-- |
2661
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 |
-- mod_conversejs |
4918
f2c918fe8cf0
mod_conversejs: Bump Copyright year
Kim Alvefur <zash@zash.se>
parents:
4895
diff
changeset
|
2 |
-- Copyright (C) 2017-2022 Kim Alvefur |
2661
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 |
|
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 |
local json_encode = require"util.json".encode; |
3602
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
5 |
local xml_escape = require "util.stanza".xml_escape; |
4180
0016618e0975
mod_conversejs: Automatically register as a site app (see mod_register_apps)
Matthew Wild <mwild1@gmail.com>
parents:
4169
diff
changeset
|
6 |
local urlencode = require "util.http".urlencode; |
3602
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
7 |
local render = require "util.interpolation".new("%b{}", xml_escape, { json = json_encode }); |
2661
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 |
|
3333
43d0e298ddda
mod_conversejs: Explicitly depend on mod_http
Kim Alvefur <zash@zash.se>
parents:
3328
diff
changeset
|
9 |
module:depends"http"; |
3367
2681f74750b2
mod_conversejs: Weaken dependency on mod_bosh
Kim Alvefur <zash@zash.se>
parents:
3352
diff
changeset
|
10 |
|
2681f74750b2
mod_conversejs: Weaken dependency on mod_bosh
Kim Alvefur <zash@zash.se>
parents:
3352
diff
changeset
|
11 |
local has_bosh = pcall(function () |
2681f74750b2
mod_conversejs: Weaken dependency on mod_bosh
Kim Alvefur <zash@zash.se>
parents:
3352
diff
changeset
|
12 |
module:depends"bosh"; |
2681f74750b2
mod_conversejs: Weaken dependency on mod_bosh
Kim Alvefur <zash@zash.se>
parents:
3352
diff
changeset
|
13 |
end); |
2661
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
14 |
|
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
15 |
local has_ws = pcall(function () |
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
16 |
module:depends("websocket"); |
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
17 |
end); |
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
18 |
|
4895
99cdc7cde150
mod_conversejs: Revert back to depending on mod_bookmarks
Kim Alvefur <zash@zash.se>
parents:
4859
diff
changeset
|
19 |
pcall(function () |
99cdc7cde150
mod_conversejs: Revert back to depending on mod_bookmarks
Kim Alvefur <zash@zash.se>
parents:
4859
diff
changeset
|
20 |
module:depends("bookmarks"); |
99cdc7cde150
mod_conversejs: Revert back to depending on mod_bookmarks
Kim Alvefur <zash@zash.se>
parents:
4859
diff
changeset
|
21 |
end); |
3498
4feab7e87675
mod_conversejs: Add dependency on mod_bookmarks
Kim Alvefur <zash@zash.se>
parents:
3496
diff
changeset
|
22 |
|
3335
d98341bca458
mod_conversejs: Allow overriding CDN URL, or script/css URLs independently
Matthew Wild <mwild1@gmail.com>
parents:
3333
diff
changeset
|
23 |
local cdn_url = module:get_option_string("conversejs_cdn", "https://cdn.conversejs.org"); |
d98341bca458
mod_conversejs: Allow overriding CDN URL, or script/css URLs independently
Matthew Wild <mwild1@gmail.com>
parents:
3333
diff
changeset
|
24 |
|
3352
f753cf4f7224
mod_conversejs: Default to latest version of Converse.js
Kim Alvefur <zash@zash.se>
parents:
3351
diff
changeset
|
25 |
local version = module:get_option_string("conversejs_version", ""); |
3351
823156d5885b
mod_conversejs: Strip extra slash if version is set to the empty string
Kim Alvefur <zash@zash.se>
parents:
3341
diff
changeset
|
26 |
if version ~= "" then version = "/" .. version end |
4151
3a06dea21ea1
mod_conversejs: Enable serving resources from built-in http server
Kim Alvefur <zash@zash.se>
parents:
4051
diff
changeset
|
27 |
|
3a06dea21ea1
mod_conversejs: Enable serving resources from built-in http server
Kim Alvefur <zash@zash.se>
parents:
4051
diff
changeset
|
28 |
local serve_dist = nil; |
3a06dea21ea1
mod_conversejs: Enable serving resources from built-in http server
Kim Alvefur <zash@zash.se>
parents:
4051
diff
changeset
|
29 |
local resources = module:get_option_path("conversejs_resources"); |
3a06dea21ea1
mod_conversejs: Enable serving resources from built-in http server
Kim Alvefur <zash@zash.se>
parents:
4051
diff
changeset
|
30 |
if resources then |
3a06dea21ea1
mod_conversejs: Enable serving resources from built-in http server
Kim Alvefur <zash@zash.se>
parents:
4051
diff
changeset
|
31 |
local serve; |
4980
75b6e5df65f9
various: Improve error reporting if missing file server module on 0.12
Kim Alvefur <zash@zash.se>
parents:
4918
diff
changeset
|
32 |
if prosody.process_type == "prosody" then |
4151
3a06dea21ea1
mod_conversejs: Enable serving resources from built-in http server
Kim Alvefur <zash@zash.se>
parents:
4051
diff
changeset
|
33 |
-- Prosody >= trunk / 0.12 |
3a06dea21ea1
mod_conversejs: Enable serving resources from built-in http server
Kim Alvefur <zash@zash.se>
parents:
4051
diff
changeset
|
34 |
local http_files = require "net.http.files"; |
3a06dea21ea1
mod_conversejs: Enable serving resources from built-in http server
Kim Alvefur <zash@zash.se>
parents:
4051
diff
changeset
|
35 |
serve = http_files.serve; |
4980
75b6e5df65f9
various: Improve error reporting if missing file server module on 0.12
Kim Alvefur <zash@zash.se>
parents:
4918
diff
changeset
|
36 |
else |
4151
3a06dea21ea1
mod_conversejs: Enable serving resources from built-in http server
Kim Alvefur <zash@zash.se>
parents:
4051
diff
changeset
|
37 |
-- Prosody <= 0.11 |
3a06dea21ea1
mod_conversejs: Enable serving resources from built-in http server
Kim Alvefur <zash@zash.se>
parents:
4051
diff
changeset
|
38 |
serve = module:depends "http_files".serve; |
3a06dea21ea1
mod_conversejs: Enable serving resources from built-in http server
Kim Alvefur <zash@zash.se>
parents:
4051
diff
changeset
|
39 |
end |
3a06dea21ea1
mod_conversejs: Enable serving resources from built-in http server
Kim Alvefur <zash@zash.se>
parents:
4051
diff
changeset
|
40 |
local mime_map = module:shared("/*/http_files/mime").types or {css = "text/css"; js = "application/javascript"}; |
3a06dea21ea1
mod_conversejs: Enable serving resources from built-in http server
Kim Alvefur <zash@zash.se>
parents:
4051
diff
changeset
|
41 |
serve_dist = serve({path = resources; mime_map = mime_map}); |
3a06dea21ea1
mod_conversejs: Enable serving resources from built-in http server
Kim Alvefur <zash@zash.se>
parents:
4051
diff
changeset
|
42 |
|
3a06dea21ea1
mod_conversejs: Enable serving resources from built-in http server
Kim Alvefur <zash@zash.se>
parents:
4051
diff
changeset
|
43 |
cdn_url = module:http_url(); |
3a06dea21ea1
mod_conversejs: Enable serving resources from built-in http server
Kim Alvefur <zash@zash.se>
parents:
4051
diff
changeset
|
44 |
end |
3a06dea21ea1
mod_conversejs: Enable serving resources from built-in http server
Kim Alvefur <zash@zash.se>
parents:
4051
diff
changeset
|
45 |
|
3351
823156d5885b
mod_conversejs: Strip extra slash if version is set to the empty string
Kim Alvefur <zash@zash.se>
parents:
3341
diff
changeset
|
46 |
local js_url = module:get_option_string("conversejs_script", cdn_url..version.."/dist/converse.min.js"); |
3645 | 47 |
local css_url = module:get_option_string("conversejs_css", cdn_url..version.."/dist/converse.min.css"); |
3335
d98341bca458
mod_conversejs: Allow overriding CDN URL, or script/css URLs independently
Matthew Wild <mwild1@gmail.com>
parents:
3333
diff
changeset
|
48 |
|
3602
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
49 |
local html_template; |
2661
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
50 |
|
3602
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
51 |
do |
4169
6b2a1c9ef6e2
mod_conversejs: Move templates into a directory for easier install
Kim Alvefur <zash@zash.se>
parents:
4157
diff
changeset
|
52 |
local template_filename = module:get_option_string(module.name .. "_html_template", "templates/template.html"); |
3602
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
53 |
local template_file, err = module:load_resource(template_filename); |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
54 |
if template_file then |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
55 |
html_template, err = template_file:read("*a"); |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
56 |
template_file:close(); |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
57 |
end |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
58 |
if not html_template then |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
59 |
module:log("error", "Error loading HTML template: %s", err); |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
60 |
html_template = render("<h1>mod_{module} could not read the template</h1>\ |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
61 |
<p>Tried to open <b>{filename}</b></p>\ |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
62 |
<pre>{error}</pre>", |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
63 |
{ module = module.name, filename = template_filename, error = err }); |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
64 |
end |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
65 |
end |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
66 |
|
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
67 |
local js_template; |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
68 |
do |
4169
6b2a1c9ef6e2
mod_conversejs: Move templates into a directory for easier install
Kim Alvefur <zash@zash.se>
parents:
4157
diff
changeset
|
69 |
local template_filename = module:get_option_string(module.name .. "_js_template", "templates/template.js"); |
3602
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
70 |
local template_file, err = module:load_resource(template_filename); |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
71 |
if template_file then |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
72 |
js_template, err = template_file:read("*a"); |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
73 |
template_file:close(); |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
74 |
end |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
75 |
if not js_template then |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
76 |
module:log("error", "Error loading JS template: %s", err); |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
77 |
js_template = render("console.log(\"mod_{module} could not read the JS template: %s\", {error|json})", |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
78 |
{ module = module.name, filename = template_filename, error = err }); |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
79 |
end |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
80 |
end |
3316
e714be00aaad
mod_conversejs: Factor JavaScript part out of HTML
Kim Alvefur <zash@zash.se>
parents:
3314
diff
changeset
|
81 |
|
5215
079ca766193b
mod_conversejs: This one weird trick updates options on reload
Kim Alvefur <zash@zash.se>
parents:
4980
diff
changeset
|
82 |
local function get_converse_options() |
079ca766193b
mod_conversejs: This one weird trick updates options on reload
Kim Alvefur <zash@zash.se>
parents:
4980
diff
changeset
|
83 |
local user_options = module:get_option("conversejs_options"); |
2923
0ea93da47db9
mod_conversejs: Allow passing arbitrary options trough to Converse.js
Kim Alvefur <zash@zash.se>
parents:
2698
diff
changeset
|
84 |
|
3317
d6b922191aeb
mod_conversejs: Factor out option handling into a function for future reuse
Kim Alvefur <zash@zash.se>
parents:
3316
diff
changeset
|
85 |
local allow_registration = module:get_option_boolean("allow_registration", false); |
d6b922191aeb
mod_conversejs: Factor out option handling into a function for future reuse
Kim Alvefur <zash@zash.se>
parents:
3316
diff
changeset
|
86 |
local converse_options = { |
4213
37aa50ed79c1
mod_conversejs: Add comments about default settings
Kim Alvefur <zash@zash.se>
parents:
4180
diff
changeset
|
87 |
-- Auto-detected connection endpoints |
3367
2681f74750b2
mod_conversejs: Weaken dependency on mod_bosh
Kim Alvefur <zash@zash.se>
parents:
3352
diff
changeset
|
88 |
bosh_service_url = has_bosh and module:http_url("bosh","/http-bind") or nil; |
3317
d6b922191aeb
mod_conversejs: Factor out option handling into a function for future reuse
Kim Alvefur <zash@zash.se>
parents:
3316
diff
changeset
|
89 |
websocket_url = has_ws and module:http_url("websocket","xmpp-websocket"):gsub("^http", "ws") or nil; |
4213
37aa50ed79c1
mod_conversejs: Add comments about default settings
Kim Alvefur <zash@zash.se>
parents:
4180
diff
changeset
|
90 |
-- Since we provide those, XEP-0156 based auto-discovery should not be used |
4051
36b6e3e3f9e2
mod_conversejs: Disable automatic BOSH/WS endpoint discovery
Kim Alvefur <zash@zash.se>
parents:
3741
diff
changeset
|
91 |
discover_connection_methods = false; |
4213
37aa50ed79c1
mod_conversejs: Add comments about default settings
Kim Alvefur <zash@zash.se>
parents:
4180
diff
changeset
|
92 |
-- Authentication mode to use (normal or guest login) |
37aa50ed79c1
mod_conversejs: Add comments about default settings
Kim Alvefur <zash@zash.se>
parents:
4180
diff
changeset
|
93 |
authentication = module:get_option_string("authentication") == "anonymous" and "anonymous" or "login"; |
37aa50ed79c1
mod_conversejs: Add comments about default settings
Kim Alvefur <zash@zash.se>
parents:
4180
diff
changeset
|
94 |
-- Host to connect to for anonymous access |
3317
d6b922191aeb
mod_conversejs: Factor out option handling into a function for future reuse
Kim Alvefur <zash@zash.se>
parents:
3316
diff
changeset
|
95 |
jid = module.host; |
4213
37aa50ed79c1
mod_conversejs: Add comments about default settings
Kim Alvefur <zash@zash.se>
parents:
4180
diff
changeset
|
96 |
-- Let users login with only username |
3317
d6b922191aeb
mod_conversejs: Factor out option handling into a function for future reuse
Kim Alvefur <zash@zash.se>
parents:
3316
diff
changeset
|
97 |
default_domain = module.host; |
d6b922191aeb
mod_conversejs: Factor out option handling into a function for future reuse
Kim Alvefur <zash@zash.se>
parents:
3316
diff
changeset
|
98 |
domain_placeholder = module.host; |
4213
37aa50ed79c1
mod_conversejs: Add comments about default settings
Kim Alvefur <zash@zash.se>
parents:
4180
diff
changeset
|
99 |
-- If registration is enabled |
3317
d6b922191aeb
mod_conversejs: Factor out option handling into a function for future reuse
Kim Alvefur <zash@zash.se>
parents:
3316
diff
changeset
|
100 |
allow_registration = allow_registration; |
4213
37aa50ed79c1
mod_conversejs: Add comments about default settings
Kim Alvefur <zash@zash.se>
parents:
4180
diff
changeset
|
101 |
-- and if it is, which domain to register with |
3317
d6b922191aeb
mod_conversejs: Factor out option handling into a function for future reuse
Kim Alvefur <zash@zash.se>
parents:
3316
diff
changeset
|
102 |
registration_domain = allow_registration and module.host or nil; |
4213
37aa50ed79c1
mod_conversejs: Add comments about default settings
Kim Alvefur <zash@zash.se>
parents:
4180
diff
changeset
|
103 |
-- Path to resources like emoji, icons, sounds |
4157
4ee2a90d3818
mod_conversejs: Generate 'assets_path' to fix locating certain resources
Kim Alvefur <zash@zash.se>
parents:
4151
diff
changeset
|
104 |
assets_path = cdn_url..version.."/dist/"; |
4213
37aa50ed79c1
mod_conversejs: Add comments about default settings
Kim Alvefur <zash@zash.se>
parents:
4180
diff
changeset
|
105 |
-- Default most suited for use as a "normal" client |
3741
49e65a7e9415
mod_conversejs: Use the fullscreen view mode by default
Kim Alvefur <zash@zash.se>
parents:
3645
diff
changeset
|
106 |
view_mode = "fullscreen"; |
3317
d6b922191aeb
mod_conversejs: Factor out option handling into a function for future reuse
Kim Alvefur <zash@zash.se>
parents:
3316
diff
changeset
|
107 |
}; |
d6b922191aeb
mod_conversejs: Factor out option handling into a function for future reuse
Kim Alvefur <zash@zash.se>
parents:
3316
diff
changeset
|
108 |
|
4213
37aa50ed79c1
mod_conversejs: Add comments about default settings
Kim Alvefur <zash@zash.se>
parents:
4180
diff
changeset
|
109 |
-- Let config override the above defaults |
3336
4fdd8b77da54
mod_conversejs: Variable rename for clarity (user may override options)
Matthew Wild <mwild1@gmail.com>
parents:
3335
diff
changeset
|
110 |
if type(user_options) == "table" then |
4fdd8b77da54
mod_conversejs: Variable rename for clarity (user may override options)
Matthew Wild <mwild1@gmail.com>
parents:
3335
diff
changeset
|
111 |
for k,v in pairs(user_options) do |
3317
d6b922191aeb
mod_conversejs: Factor out option handling into a function for future reuse
Kim Alvefur <zash@zash.se>
parents:
3316
diff
changeset
|
112 |
converse_options[k] = v; |
d6b922191aeb
mod_conversejs: Factor out option handling into a function for future reuse
Kim Alvefur <zash@zash.se>
parents:
3316
diff
changeset
|
113 |
end |
d6b922191aeb
mod_conversejs: Factor out option handling into a function for future reuse
Kim Alvefur <zash@zash.se>
parents:
3316
diff
changeset
|
114 |
end |
d6b922191aeb
mod_conversejs: Factor out option handling into a function for future reuse
Kim Alvefur <zash@zash.se>
parents:
3316
diff
changeset
|
115 |
|
d6b922191aeb
mod_conversejs: Factor out option handling into a function for future reuse
Kim Alvefur <zash@zash.se>
parents:
3316
diff
changeset
|
116 |
return converse_options; |
d6b922191aeb
mod_conversejs: Factor out option handling into a function for future reuse
Kim Alvefur <zash@zash.se>
parents:
3316
diff
changeset
|
117 |
end |
d6b922191aeb
mod_conversejs: Factor out option handling into a function for future reuse
Kim Alvefur <zash@zash.se>
parents:
3316
diff
changeset
|
118 |
|
3602
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
119 |
local add_tags = module:get_option_array("conversejs_tags", {}); |
3337
5be90562e14b
mod_conversejs: Allow custom tags to be inserted into the generated HTML
Matthew Wild <mwild1@gmail.com>
parents:
3336
diff
changeset
|
120 |
|
2661
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
121 |
module:provides("http", { |
3341
b46bb9392efe
mod_conversejs: Set a friendly name for mod_http_index
Kim Alvefur <zash@zash.se>
parents:
3337
diff
changeset
|
122 |
title = "Converse.js"; |
2661
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
123 |
route = { |
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
124 |
GET = function (event) |
3317
d6b922191aeb
mod_conversejs: Factor out option handling into a function for future reuse
Kim Alvefur <zash@zash.se>
parents:
3316
diff
changeset
|
125 |
local converse_options = get_converse_options(); |
3314
908b2bc05d26
mod_conversejs: Restore accidentally removed configuration option handling
Kim Alvefur <zash@zash.se>
parents:
3313
diff
changeset
|
126 |
|
2923
0ea93da47db9
mod_conversejs: Allow passing arbitrary options trough to Converse.js
Kim Alvefur <zash@zash.se>
parents:
2698
diff
changeset
|
127 |
event.response.headers.content_type = "text/html"; |
3602
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
128 |
return render(html_template, { |
3603
42fa833169bb
mod_conversejs: Make title configurable (fixes #1362)
Kim Alvefur <zash@zash.se>
parents:
3602
diff
changeset
|
129 |
service_name = module:get_option_string("name"); |
3602
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
130 |
header_scripts = { js_url }; |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
131 |
header_style = { css_url }; |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
132 |
header_tags = add_tags; |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
133 |
conversejs = { |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
134 |
options = converse_options; |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
135 |
startup = { script = js_template:format(json_encode(converse_options)); } |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
136 |
}; |
1921ae4449b8
mod_conversejs: Separate out templates into separate configurable files (breaks 0.9 compat)
Kim Alvefur <zash@zash.se>
parents:
3498
diff
changeset
|
137 |
}); |
2661
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
138 |
end; |
3318
ab67f222d88b
mod_conversejs: Add an endpoint returning only initialization snippet
Kim Alvefur <zash@zash.se>
parents:
3317
diff
changeset
|
139 |
|
ab67f222d88b
mod_conversejs: Add an endpoint returning only initialization snippet
Kim Alvefur <zash@zash.se>
parents:
3317
diff
changeset
|
140 |
["GET /prosody-converse.js"] = function (event) |
ab67f222d88b
mod_conversejs: Add an endpoint returning only initialization snippet
Kim Alvefur <zash@zash.se>
parents:
3317
diff
changeset
|
141 |
local converse_options = get_converse_options(); |
ab67f222d88b
mod_conversejs: Add an endpoint returning only initialization snippet
Kim Alvefur <zash@zash.se>
parents:
3317
diff
changeset
|
142 |
|
ab67f222d88b
mod_conversejs: Add an endpoint returning only initialization snippet
Kim Alvefur <zash@zash.se>
parents:
3317
diff
changeset
|
143 |
event.response.headers.content_type = "application/javascript"; |
ab67f222d88b
mod_conversejs: Add an endpoint returning only initialization snippet
Kim Alvefur <zash@zash.se>
parents:
3317
diff
changeset
|
144 |
return js_template:format(json_encode(converse_options)); |
ab67f222d88b
mod_conversejs: Add an endpoint returning only initialization snippet
Kim Alvefur <zash@zash.se>
parents:
3317
diff
changeset
|
145 |
end; |
4151
3a06dea21ea1
mod_conversejs: Enable serving resources from built-in http server
Kim Alvefur <zash@zash.se>
parents:
4051
diff
changeset
|
146 |
["GET /dist/*"] = serve_dist; |
2661
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
147 |
} |
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
148 |
}); |
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
149 |
|
4180
0016618e0975
mod_conversejs: Automatically register as a site app (see mod_register_apps)
Matthew Wild <mwild1@gmail.com>
parents:
4169
diff
changeset
|
150 |
module:provides("site-app", { |
0016618e0975
mod_conversejs: Automatically register as a site app (see mod_register_apps)
Matthew Wild <mwild1@gmail.com>
parents:
4169
diff
changeset
|
151 |
name = "Converse.js"; |
0016618e0975
mod_conversejs: Automatically register as a site app (see mod_register_apps)
Matthew Wild <mwild1@gmail.com>
parents:
4169
diff
changeset
|
152 |
text = [[A free and open-source XMPP chat client in your browser]]; |
0016618e0975
mod_conversejs: Automatically register as a site app (see mod_register_apps)
Matthew Wild <mwild1@gmail.com>
parents:
4169
diff
changeset
|
153 |
image = "assets/logos/converse-js.svg"; |
0016618e0975
mod_conversejs: Automatically register as a site app (see mod_register_apps)
Matthew Wild <mwild1@gmail.com>
parents:
4169
diff
changeset
|
154 |
link = "https://conversejs.org/"; |
0016618e0975
mod_conversejs: Automatically register as a site app (see mod_register_apps)
Matthew Wild <mwild1@gmail.com>
parents:
4169
diff
changeset
|
155 |
magic_link_format = "/register?t={invite.token}&c=converse-js"; |
0016618e0975
mod_conversejs: Automatically register as a site app (see mod_register_apps)
Matthew Wild <mwild1@gmail.com>
parents:
4169
diff
changeset
|
156 |
login_link_format = module:http_url(); |
0016618e0975
mod_conversejs: Automatically register as a site app (see mod_register_apps)
Matthew Wild <mwild1@gmail.com>
parents:
4169
diff
changeset
|
157 |
platforms = { "Web" }; |
0016618e0975
mod_conversejs: Automatically register as a site app (see mod_register_apps)
Matthew Wild <mwild1@gmail.com>
parents:
4169
diff
changeset
|
158 |
download = { |
0016618e0975
mod_conversejs: Automatically register as a site app (see mod_register_apps)
Matthew Wild <mwild1@gmail.com>
parents:
4169
diff
changeset
|
159 |
buttons = { |
0016618e0975
mod_conversejs: Automatically register as a site app (see mod_register_apps)
Matthew Wild <mwild1@gmail.com>
parents:
4169
diff
changeset
|
160 |
{ |
0016618e0975
mod_conversejs: Automatically register as a site app (see mod_register_apps)
Matthew Wild <mwild1@gmail.com>
parents:
4169
diff
changeset
|
161 |
text = "Open web chat"; |
0016618e0975
mod_conversejs: Automatically register as a site app (see mod_register_apps)
Matthew Wild <mwild1@gmail.com>
parents:
4169
diff
changeset
|
162 |
url = module:http_url(); |
0016618e0975
mod_conversejs: Automatically register as a site app (see mod_register_apps)
Matthew Wild <mwild1@gmail.com>
parents:
4169
diff
changeset
|
163 |
}; |
0016618e0975
mod_conversejs: Automatically register as a site app (see mod_register_apps)
Matthew Wild <mwild1@gmail.com>
parents:
4169
diff
changeset
|
164 |
}; |
0016618e0975
mod_conversejs: Automatically register as a site app (see mod_register_apps)
Matthew Wild <mwild1@gmail.com>
parents:
4169
diff
changeset
|
165 |
}; |
0016618e0975
mod_conversejs: Automatically register as a site app (see mod_register_apps)
Matthew Wild <mwild1@gmail.com>
parents:
4169
diff
changeset
|
166 |
|
0016618e0975
mod_conversejs: Automatically register as a site app (see mod_register_apps)
Matthew Wild <mwild1@gmail.com>
parents:
4169
diff
changeset
|
167 |
}); |