Mercurial > prosody-modules
annotate mod_conversejs/mod_conversejs.lua @ 2969:8681729a47d5
mod_http_logging: Wrap API for sending data from file handles
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 30 Mar 2018 13:40:06 +0200 |
parents | 5c60df8b1a07 |
children | ba6466fa6823 |
rev | line source |
---|---|
2657
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 |
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 -- Copyright (C) 2017 Kim Alvefur |
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; |
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 |
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
6 module:depends"bosh"; |
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
7 |
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 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
|
9 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
|
10 end); |
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
11 |
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 local template = [[ |
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 <!DOCTYPE html> |
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
14 <meta charset="utf-8"> |
2921
3264058ae54f
mod_conversejs: Hack in support for changing the CSS if InVerse mode is enabled
Kim Alvefur <zash@zash.se>
parents:
2919
diff
changeset
|
15 <link rel="stylesheet" type="text/css" media="screen" href="https://cdn.conversejs.org/css/%s.min.css"> |
2657
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
16 <script src="https://cdn.conversejs.org/dist/converse.min.js"></script> |
2664
5b97b04e9d1b
mod_conversejs: Include a <body> tag in HTML
Kim Alvefur <zash@zash.se>
parents:
2658
diff
changeset
|
17 <body><script>converse.initialize(%s);</script> |
2657
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
18 ]] |
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
19 |
2919
0ea93da47db9
mod_conversejs: Allow passing arbitrary options trough to Converse.js
Kim Alvefur <zash@zash.se>
parents:
2694
diff
changeset
|
20 local more_options = module:get_option("conversejs_options"); |
0ea93da47db9
mod_conversejs: Allow passing arbitrary options trough to Converse.js
Kim Alvefur <zash@zash.se>
parents:
2694
diff
changeset
|
21 |
2657
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
22 module:provides("http", { |
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
23 route = { |
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
24 GET = function (event) |
2919
0ea93da47db9
mod_conversejs: Allow passing arbitrary options trough to Converse.js
Kim Alvefur <zash@zash.se>
parents:
2694
diff
changeset
|
25 local converse_options = { |
2657
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
26 bosh_service_url = module:http_url("bosh","/http-bind"); |
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
27 websocket_url = has_ws and module:http_url("websocket","xmpp-websocket"):gsub("^http", "ws") or nil; |
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
28 authentication = module:get_option_string("authentication") == "anonymous" and "anonymous" or "login"; |
2694
38c66b58b470
mod_conversejs: Pass host jid (needed for anonymous auth)
Kim Alvefur <zash@zash.se>
parents:
2664
diff
changeset
|
29 jid = module.host; |
2933
8858cef9ed27
mod_conversejs: Pass current domain as 'default_domain'
Kim Alvefur <zash@zash.se>
parents:
2921
diff
changeset
|
30 default_domain = module.host; |
2934
5c60df8b1a07
mod_conversejs: Pass information about if and how of account registration
Kim Alvefur <zash@zash.se>
parents:
2933
diff
changeset
|
31 domain_placeholder = module.host; |
5c60df8b1a07
mod_conversejs: Pass information about if and how of account registration
Kim Alvefur <zash@zash.se>
parents:
2933
diff
changeset
|
32 allow_registration = module:get_option_boolean("allow_registration", false); |
2919
0ea93da47db9
mod_conversejs: Allow passing arbitrary options trough to Converse.js
Kim Alvefur <zash@zash.se>
parents:
2694
diff
changeset
|
33 }; |
0ea93da47db9
mod_conversejs: Allow passing arbitrary options trough to Converse.js
Kim Alvefur <zash@zash.se>
parents:
2694
diff
changeset
|
34 |
2921
3264058ae54f
mod_conversejs: Hack in support for changing the CSS if InVerse mode is enabled
Kim Alvefur <zash@zash.se>
parents:
2919
diff
changeset
|
35 local view_mode_css = "converse"; |
2919
0ea93da47db9
mod_conversejs: Allow passing arbitrary options trough to Converse.js
Kim Alvefur <zash@zash.se>
parents:
2694
diff
changeset
|
36 if type(more_options) == "table" then |
0ea93da47db9
mod_conversejs: Allow passing arbitrary options trough to Converse.js
Kim Alvefur <zash@zash.se>
parents:
2694
diff
changeset
|
37 for k,v in pairs(more_options) do |
0ea93da47db9
mod_conversejs: Allow passing arbitrary options trough to Converse.js
Kim Alvefur <zash@zash.se>
parents:
2694
diff
changeset
|
38 converse_options[k] = v; |
0ea93da47db9
mod_conversejs: Allow passing arbitrary options trough to Converse.js
Kim Alvefur <zash@zash.se>
parents:
2694
diff
changeset
|
39 end |
2921
3264058ae54f
mod_conversejs: Hack in support for changing the CSS if InVerse mode is enabled
Kim Alvefur <zash@zash.se>
parents:
2919
diff
changeset
|
40 if more_options.view_mode == "fullscreen" then |
3264058ae54f
mod_conversejs: Hack in support for changing the CSS if InVerse mode is enabled
Kim Alvefur <zash@zash.se>
parents:
2919
diff
changeset
|
41 view_mode_css = "inverse"; |
3264058ae54f
mod_conversejs: Hack in support for changing the CSS if InVerse mode is enabled
Kim Alvefur <zash@zash.se>
parents:
2919
diff
changeset
|
42 end |
2919
0ea93da47db9
mod_conversejs: Allow passing arbitrary options trough to Converse.js
Kim Alvefur <zash@zash.se>
parents:
2694
diff
changeset
|
43 end |
0ea93da47db9
mod_conversejs: Allow passing arbitrary options trough to Converse.js
Kim Alvefur <zash@zash.se>
parents:
2694
diff
changeset
|
44 |
0ea93da47db9
mod_conversejs: Allow passing arbitrary options trough to Converse.js
Kim Alvefur <zash@zash.se>
parents:
2694
diff
changeset
|
45 event.response.headers.content_type = "text/html"; |
2921
3264058ae54f
mod_conversejs: Hack in support for changing the CSS if InVerse mode is enabled
Kim Alvefur <zash@zash.se>
parents:
2919
diff
changeset
|
46 return template:format(view_mode_css, json_encode(converse_options)); |
2657
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
47 end; |
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
48 } |
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
49 }); |
6f5c99c9f6cc
mod_conversejs: Simple demo module for serving converse.js from internal http server
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
50 |