Software /
code /
prosody-modules
Changeset
933:5a975ba6a845
mod_candy: Example of how easy it is to serve files from a prosody module
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 24 Mar 2013 23:58:40 +0100 |
parents | 932:4e235e565693 |
children | 934:15e2c4fd26a0 |
files | mod_candy/mod_candy.lua mod_candy/www_files/index.html |
diffstat | 2 files changed, 59 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_candy/mod_candy.lua Sun Mar 24 23:58:40 2013 +0100 @@ -0,0 +1,27 @@ +-- mod_candy.lua +-- Copyright (C) 2013 Kim Alvefur +-- +-- Run this in www_files +-- curl -L http://github.com/candy-chat/candy/tarball/master | tar xzfv - --strip-components=1 + +local json_encode = require"util.json".encode; + +local serve = module:depends"http_files".serve; + +module:provides("http", { + route = { + ["GET /prosody.js"] = function(event) + event.response.headers.content_type = "text/javascript"; + return ("// Generated by Prosody\n" + .."var Prosody = %s;\n") + :format(json_encode({ + bosh_path = module:http_url("bosh","/http-bind"); + version = prosody.version; + host = module:get_host(); + anonymous = module:get_option_string("authentication") == "anonymous"; + })); + end; + ["GET /*"] = serve(module:get_directory().."/www_files"); + } +}); +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_candy/www_files/index.html Sun Mar 24 23:58:40 2013 +0100 @@ -0,0 +1,32 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title>Candy - Powered by Prosŏdy</title> + <link rel="shortcut icon" href="res/img/favicon.png" type="image/gif" /> + <link rel="stylesheet" type="text/css" href="res/default.css" /> + + <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script> + <script type="text/javascript" src="libs/libs.min.js"></script> + <script type="text/javascript" src="candy.min.js"></script> + <script type="text/javascript" src="prosody.js"></script> + <script type="text/javascript"> + $(document).ready(function() { + Candy.init(Prosody.bosh_path, { + core: { debug: false }, + view: { resources: 'res/' } + }); + + if(Prosody.anonymous) { + Candy.Core.connect(Prosody.host); + } else { + Candy.Core.connect(); + } + document.title += " " + Prosody.version; + }); + </script> +</head> +<body> + <div id="candy"></div> +</body> +</html>