annotate mod_muc_log_http/muc_log_http/mod_muc_log_http.lua @ 384:79983e658bb5

mod_muc_log_http: Cleaned up URL handling.
author Waqas Hussain <waqas20@gmail.com>
date Mon, 25 Jul 2011 02:21:40 +0500
parents 4099f0837936
children fec9bc52aa42
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
94
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
1 -- Copyright (C) 2009 Thilo Cestonaro
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
2 --
94
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
3 -- This project is MIT/X11 licensed. Please see the
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
4 -- COPYING file in the source package for more information.
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
5 --
102
a10ab09096e2 mod_muc_log_http: double check if muc_hosts is not nil, less logging, config var renamed to http_port back again
Thilo Cestonaro <thilo@cestona.ro>
parents: 101
diff changeset
6
264
07c17b60229a mod_muc_log_http: Mark as global.
Waqas Hussain <waqas20@gmail.com>
parents: 194
diff changeset
7 module:set_global();
07c17b60229a mod_muc_log_http: Mark as global.
Waqas Hussain <waqas20@gmail.com>
parents: 194
diff changeset
8
94
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
9 local prosody = prosody;
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
10 local tabSort = table.sort;
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
11 local tonumber = _G.tonumber;
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
12 local tostring = _G.tostring;
116
f68a781efe81 mod_muc_log_http: support escaped urls
Thilo Cestonaro <thilo@cestona.ro>
parents: 115
diff changeset
13 local strchar = string.char;
94
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
14 local strformat = string.format;
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
15 local splitJid = require "util.jid".split;
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
16 local config_get = require "core.configmanager".get;
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
17 local httpserver = require "net.httpserver";
344
2b0f2160fc61 mod_muc_log_http: Fix room name encoding/decoding (for UTF-8 room names)
Joseph Wallace <JosephWallace@letu.edu>
parents: 343
diff changeset
18 local urlencode = require "net.http".urlencode;
2b0f2160fc61 mod_muc_log_http: Fix room name encoding/decoding (for UTF-8 room names)
Joseph Wallace <JosephWallace@letu.edu>
parents: 343
diff changeset
19 local urldecode = require "net.http".urldecode;
94
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
20 local datamanager = require "util.datamanager";
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
21 local data_load, data_getpath = datamanager.load, datamanager.getpath;
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
22 local datastore = "muc_log";
102
a10ab09096e2 mod_muc_log_http: double check if muc_hosts is not nil, less logging, config var renamed to http_port back again
Thilo Cestonaro <thilo@cestona.ro>
parents: 101
diff changeset
23 local urlBase = "muc_log";
94
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
24 local muc_hosts = {};
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
25 local config = nil;
101
e3c09996cf7b mod_muc_log_http: display available days in a calendar view
Thilo Cestonaro <thilo@cestona.ro>
parents: 94
diff changeset
26 local tostring = _G.tostring;
e3c09996cf7b mod_muc_log_http: display available days in a calendar view
Thilo Cestonaro <thilo@cestona.ro>
parents: 94
diff changeset
27 local tonumber = _G.tonumber;
e3c09996cf7b mod_muc_log_http: display available days in a calendar view
Thilo Cestonaro <thilo@cestona.ro>
parents: 94
diff changeset
28 local os_date, os_time = os.date, os.time;
e3c09996cf7b mod_muc_log_http: display available days in a calendar view
Thilo Cestonaro <thilo@cestona.ro>
parents: 94
diff changeset
29 local str_format = string.format;
105
cef943f0a551 mod_muc_log_http: themified ...
Thilo Cestonaro <thilo@cestona.ro>
parents: 104
diff changeset
30 local io_open = io.open;
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
31 local themesParent = (module.path and module.path:gsub("[/\\][^/\\]*$", "") or (prosody.paths.plugins or "./plugins") .. "/muc_log_http") .. "/themes";
94
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
32
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
33 local lom = require "lxp.lom";
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
34
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
35 --[[ LuaFileSystem
94
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
36 * URL: http://www.keplerproject.org/luafilesystem/index.html
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
37 * Install: luarocks install luafilesystem
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
38 * ]]
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
39 local lfs = require "lfs";
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
40
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
41
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
42 --[[
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
43 * Default templates for the html output.
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
44 ]]--
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
45 local html = {};
183
9d4fd01443eb mod_muc_log_http: ensure to have the default being "prosody"
Thilo Cestonaro <thilo@cestona.ro>
parents: 180
diff changeset
46 local theme;
94
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
47
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
48 local function checkDatastorePathExists(node, host, today, create)
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
49 create = create or false;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
50 local path = data_getpath(node, host, datastore, "dat", true);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
51 path = path:gsub("/[^/]*$", "");
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
52
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
53 -- check existance
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
54 local attributes, err = lfs.attributes(path);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
55 if attributes == nil or attributes.mode ~= "directory" then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
56 module:log("warn", "muc_log folder isn't a folder: %s", path);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
57 return false;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
58 end
94
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
59
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
60 attributes, err = lfs.attributes(path .. "/" .. today);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
61 if attributes == nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
62 if create then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
63 return lfs.mkdir(path .. "/" .. today);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
64 else
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
65 return false;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
66 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
67 elseif attributes.mode == "directory" then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
68 return true;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
69 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
70 return false;
94
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
71 end
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
72
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
73 function createDoc(body)
383
4099f0837936 mod_muc_log_http: Added assertion to ensure proper failure on empty responses.
Waqas Hussain <waqas20@gmail.com>
parents: 382
diff changeset
74 assert(body, "<nil> HTTP response");
4099f0837936 mod_muc_log_http: Added assertion to ensure proper failure on empty responses.
Waqas Hussain <waqas20@gmail.com>
parents: 382
diff changeset
75 body = body:gsub("%%", "%%%%");
4099f0837936 mod_muc_log_http: Added assertion to ensure proper failure on empty responses.
Waqas Hussain <waqas20@gmail.com>
parents: 382
diff changeset
76 return html.doc:gsub("###BODY_STUFF###", body);
94
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
77 end
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
78
116
f68a781efe81 mod_muc_log_http: support escaped urls
Thilo Cestonaro <thilo@cestona.ro>
parents: 115
diff changeset
79 function urlunescape (escapedUrl)
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
80 escapedUrl = escapedUrl:gsub("+", " ")
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
81 escapedUrl = escapedUrl:gsub("%%(%x%x)", function(h) return strchar(tonumber(h,16)) end)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
82 escapedUrl = escapedUrl:gsub("\r\n", "\n")
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
83 return escapedUrl
116
f68a781efe81 mod_muc_log_http: support escaped urls
Thilo Cestonaro <thilo@cestona.ro>
parents: 115
diff changeset
84 end
f68a781efe81 mod_muc_log_http: support escaped urls
Thilo Cestonaro <thilo@cestona.ro>
parents: 115
diff changeset
85
94
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
86 local function htmlEscape(t)
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
87 if t then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
88 t = t:gsub("<", "&lt;");
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
89 t = t:gsub(">", "&gt;");
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
90 t = t:gsub("(http://[%a%d@%.:/&%?=%-_#%%~]+)", function(h)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
91 h = urlunescape(h)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
92 return "<a href='" .. h .. "'>" .. h .. "</a>";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
93 end);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
94 t = t:gsub("\n", "<br />");
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
95 t = t:gsub("%%", "%%%%");
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
96 else
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
97 t = "";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
98 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
99 return t;
94
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
100 end
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
101
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
102 local function generateComponentListSiteContent()
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
103 local components = "";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
104 for component,muc_host in pairs(muc_hosts or {}) do
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
105 components = components .. html.components.bit:gsub("###COMPONENT###", component);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
106 end
381
f932dc371ce7 mod_muc_log_http: Generate main component list page even when there are no components defined.
Waqas Hussain <waqas20@gmail.com>
parents: 380
diff changeset
107 return html.components.body:gsub("###COMPONENTS_STUFF###", components);
94
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
108 end
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
109
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
110 local function generateRoomListSiteContent(component)
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
111 local rooms = "";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
112 if prosody.hosts[component] and prosody.hosts[component].muc ~= nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
113 for jid, room in pairs(prosody.hosts[component].muc.rooms) do
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
114 local node = splitJid(jid);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
115 if not room._data.hidden and node then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
116 rooms = rooms .. html.rooms.bit:gsub("###ROOM###", node):gsub("###COMPONENT###", component);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
117 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
118 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
119 if rooms ~= "" then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
120 return html.rooms.body:gsub("###ROOMS_STUFF###", rooms):gsub("###COMPONENT###", component);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
121 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
122 end
94
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
123 end
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
124
101
e3c09996cf7b mod_muc_log_http: display available days in a calendar view
Thilo Cestonaro <thilo@cestona.ro>
parents: 94
diff changeset
125 -- Calendar stuff
e3c09996cf7b mod_muc_log_http: display available days in a calendar view
Thilo Cestonaro <thilo@cestona.ro>
parents: 94
diff changeset
126 local function getDaysForMonth(month, year)
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
127 local daysCount = 30;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
128 local leapyear = false;
101
e3c09996cf7b mod_muc_log_http: display available days in a calendar view
Thilo Cestonaro <thilo@cestona.ro>
parents: 94
diff changeset
129
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
130 if year%4 == 0 and year%100 == 0 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
131 if year%400 == 0 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
132 leapyear = true;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
133 else
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
134 leapyear = false; -- turn of the century but not a leapyear
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
135 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
136 elseif year%4 == 0 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
137 leapyear = true;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
138 end
101
e3c09996cf7b mod_muc_log_http: display available days in a calendar view
Thilo Cestonaro <thilo@cestona.ro>
parents: 94
diff changeset
139
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
140 if month == 2 and leapyear then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
141 daysCount = 29;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
142 elseif month == 2 and not leapyear then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
143 daysCount = 28;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
144 elseif month < 8 and month%2 == 1 or
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
145 month >= 8 and month%2 == 0
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
146 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
147 daysCount = 31;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
148 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
149 return daysCount;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
150 end
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
151
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
152 local function createMonth(month, year, dayCallback)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
153 local htmlStr = html.month.header;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
154 local days = getDaysForMonth(month, year);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
155 local time = os_time{year=year, month=month, day=1};
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
156 local dow = tostring(os_date("%a", time))
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
157 local title = tostring(os_date("%B", time));
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
158 local weekDays = {"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"};
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
159 local weekDay = 0;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
160 local weeks = 1;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
161 local logAvailableForMinimumOneDay = false;
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
162
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
163 local weekDaysHtml = "";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
164 for _, tmp in ipairs(weekDays) do
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
165 weekDaysHtml = weekDaysHtml .. html.month.weekDay:gsub("###DAY###", tmp) .. "\n";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
166 end
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
167
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
168 htmlStr = htmlStr:gsub("###TITLE###", title):gsub("###WEEKDAYS###", weekDaysHtml);
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
169
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
170 for i = 1, 31 do
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
171 weekDay = weekDay + 1;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
172 if weekDay == 1 then htmlStr = htmlStr .. "<tr>\n"; end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
173 if i == 1 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
174 for _, tmp in ipairs(weekDays) do
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
175 if dow ~= tmp then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
176 htmlStr = htmlStr .. html.month.emptyDay .. "\n";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
177 weekDay = weekDay + 1;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
178 else
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
179 break;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
180 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
181 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
182 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
183 if i < days + 1 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
184 local tmp = tostring(i);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
185 if dayCallback ~= nil and dayCallback.callback ~= nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
186 tmp = dayCallback.callback(dayCallback.path, i, month, year, dayCallback.room, dayCallback.webPath);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
187 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
188 if tmp == nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
189 tmp = tostring(i);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
190 else
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
191 logAvailableForMinimumOneDay = true;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
192 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
193 htmlStr = htmlStr .. html.month.day:gsub("###DAY###", tmp) .. "\n";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
194 end
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
195
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
196 if i >= days then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
197 break;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
198 end
101
e3c09996cf7b mod_muc_log_http: display available days in a calendar view
Thilo Cestonaro <thilo@cestona.ro>
parents: 94
diff changeset
199
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
200 if weekDay == 7 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
201 weekDay = 0;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
202 weeks = weeks + 1;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
203 htmlStr = htmlStr .. "</tr>\n";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
204 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
205 end
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
206
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
207 if weekDay + 1 < 8 or weeks < 6 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
208 weekDay = weekDay + 1;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
209 if weekDay > 7 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
210 weekDay = 1;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
211 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
212 if weekDay == 1 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
213 weeks = weeks + 1;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
214 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
215 for y = weeks, 6 do
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
216 if weekDay == 1 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
217 htmlStr = htmlStr .. "<tr>\n";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
218 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
219 for i = weekDay, 7 do
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
220 htmlStr = htmlStr .. html.month.emptyDay .. "\n";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
221 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
222 weekDay = 1
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
223 htmlStr = htmlStr .. "</tr>\n";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
224 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
225 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
226 htmlStr = htmlStr .. html.month.footer;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
227 if logAvailableForMinimumOneDay then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
228 return htmlStr;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
229 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
230 end
101
e3c09996cf7b mod_muc_log_http: display available days in a calendar view
Thilo Cestonaro <thilo@cestona.ro>
parents: 94
diff changeset
231
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
232 local function createYear(year, dayCallback)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
233 local year = year;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
234 local tmp;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
235 if tonumber(year) <= 99 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
236 year = year + 2000;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
237 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
238 local htmlStr = "";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
239 for i=1, 12 do
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
240 tmp = createMonth(i, year, dayCallback);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
241 if tmp then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
242 htmlStr = htmlStr .. "<div style='float: left; padding: 5px;'>\n" .. tmp .. "</div>\n";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
243 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
244 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
245 if htmlStr ~= "" then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
246 return "<div name='yearDiv' style='padding: 40px; text-align: center;'>" .. html.year.title:gsub("###YEAR###", tostring(year)) .. htmlStr .. "</div><br style='clear:both;'/> \n";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
247 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
248 return "";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
249 end
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
250
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
251 local function perDayCallback(path, day, month, year, room, webPath)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
252 local webPath = webPath or ""
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
253 local year = year;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
254 if year > 2000 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
255 year = year - 2000;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
256 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
257 local bareDay = str_format("%.02d%.02d%.02d", year, month, day);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
258 room = urlencode(room);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
259 local attributes, err = lfs.attributes(path.."/"..bareDay.."/"..room..".dat")
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
260 if attributes ~= nil and attributes.mode == "file" then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
261 local s = html.days.bit;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
262 s = s:gsub("###BARE_DAY###", webPath .. bareDay);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
263 s = s:gsub("###DAY###", day);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
264 return s;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
265 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
266 return;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
267 end
101
e3c09996cf7b mod_muc_log_http: display available days in a calendar view
Thilo Cestonaro <thilo@cestona.ro>
parents: 94
diff changeset
268
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
269 local function generateDayListSiteContentByRoom(bareRoomJid)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
270 local days = "";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
271 local arrDays = {};
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
272 local tmp;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
273 local node, host, resource = splitJid(bareRoomJid);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
274 local path = data_getpath(node, host, datastore);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
275 local room = nil;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
276 local nextRoom = "";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
277 local previousRoom = "";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
278 local rooms = "";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
279 local attributes = nil;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
280 local since = "";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
281 local to = "";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
282 local topic = "";
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
283
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
284 path = path:gsub("/[^/]*$", "");
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
285 attributes = lfs.attributes(path);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
286 if muc_hosts ~= nil and muc_hosts[host] and prosody.hosts[host] ~= nil and prosody.hosts[host].muc ~= nil and prosody.hosts[host].muc.rooms[bareRoomJid] ~= nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
287 local found = 0;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
288 for jid, room in pairs(prosody.hosts[host].muc.rooms) do
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
289 local node = splitJid(jid)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
290 if not room._data.hidden and node then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
291 if found == 0 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
292 previousRoom = node
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
293 elseif found == 1 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
294 nextRoom = node
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
295 found = -1
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
296 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
297 if jid == bareRoomJid then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
298 found = 1
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
299 end
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
300
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
301 rooms = rooms .. html.days.rooms.bit:gsub("###ROOM###", node);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
302 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
303 end
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
304
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
305 room = prosody.hosts[host].muc.rooms[bareRoomJid];
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
306 if room._data.hidden then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
307 room = nil
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
308 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
309 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
310 if attributes ~= nil and room ~= nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
311 local first = 1;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
312 local alreadyDoneYears = {};
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
313 local temptime = {day=0, month=0, year=0};
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
314 topic = room._data.subject or "(no subject)"
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
315 if topic:len() > 135 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
316 topic = topic:sub(1, topic:find(" ", 120)) .. " ..."
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
317 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
318 for folder in lfs.dir(path) do
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
319 local year, month, day = folder:match("^(%d%d)(%d%d)(%d%d)");
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
320 if year ~= nil and alreadyDoneYears[year] == nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
321 temptime.day = tonumber(day)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
322 temptime.month = tonumber(month)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
323 temptime.year = 2000 + tonumber(year)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
324 if first == 1 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
325 to = tostring(os_date("%B %Y", os_time(temptime)))
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
326 first = 0
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
327 end
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
328
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
329 since = tostring(os_date("%B %Y", os_time(temptime)))
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
330 module:log("debug", "creating overview for: " .. tostring(since))
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
331 days = createYear(year, {callback=perDayCallback, path=path, room=node}) .. days;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
332 alreadyDoneYears[year] = true;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
333 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
334 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
335 end
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
336
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
337 if days ~= "" then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
338 tmp = html.days.body:gsub("###DAYS_STUFF###", days);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
339 tmp = tmp:gsub("###PREVIOUS_ROOM###", previousRoom == "" and node or previousRoom);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
340 tmp = tmp:gsub("###NEXT_ROOM###", nextRoom == "" and node or nextRoom);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
341 tmp = tmp:gsub("###ROOMS###", rooms);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
342 tmp = tmp:gsub("###ROOMTOPIC###", topic);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
343 tmp = tmp:gsub("###SINCE###", since);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
344 tmp = tmp:gsub("###TO###", to);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
345 return tmp:gsub("###JID###", bareRoomJid);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
346 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
347 end
101
e3c09996cf7b mod_muc_log_http: display available days in a calendar view
Thilo Cestonaro <thilo@cestona.ro>
parents: 94
diff changeset
348
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
349 local function parseIqStanza(stanza, timeStuff, nick)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
350 local text = nil;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
351 local victim = nil;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
352 if(stanza.attr.type == "set") then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
353 for _,tag in ipairs(stanza) do
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
354 if tag.tag == "query" then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
355 for _,item in ipairs(tag) do
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
356 if item.tag == "item" and item.attr.nick ~= nil and item.attr.role == 'none' then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
357 victim = item.attr.nick;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
358 for _,reason in ipairs(item) do
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
359 if reason.tag == "reason" then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
360 text = reason[1];
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
361 break;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
362 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
363 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
364 break;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
365 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
366 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
367 break;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
368 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
369 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
370 if victim ~= nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
371 if text ~= nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
372 text = html.day.reason:gsub("###REASON###", htmlEscape(text));
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
373 else
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
374 text = "";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
375 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
376 return html.day.kick:gsub("###TIME_STUFF###", timeStuff):gsub("###VICTIM###", victim):gsub("###REASON_STUFF###", text);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
377 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
378 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
379 return;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
380 end
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
381
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
382 local function parsePresenceStanza(stanza, timeStuff, nick)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
383 local ret = "";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
384 local showJoin = "block"
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
385
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
386 if config and not config.showJoin then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
387 showJoin = "none";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
388 end
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
389
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
390 if stanza.attr.type == nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
391 local showStatus = "block"
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
392 if config and not config.showStatus then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
393 showStatus = "none";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
394 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
395 local show, status = nil, "";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
396 local alreadyJoined = false;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
397 for _, tag in ipairs(stanza) do
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
398 if tag.tag == "alreadyJoined" then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
399 alreadyJoined = true;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
400 elseif tag.tag == "show" then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
401 show = tag[1];
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
402 elseif tag.tag == "status" and tag[1] ~= nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
403 status = tag[1];
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
404 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
405 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
406 if alreadyJoined == true then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
407 if show == nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
408 show = "online";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
409 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
410 ret = html.day.presence.statusChange:gsub("###TIME_STUFF###", timeStuff);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
411 if status ~= "" then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
412 status = html.day.presence.statusText:gsub("###STATUS###", htmlEscape(status));
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
413 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
414 ret = ret:gsub("###SHOW###", show):gsub("###NICK###", nick):gsub("###SHOWHIDE###", showStatus):gsub("###STATUS_STUFF###", status);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
415 else
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
416 ret = html.day.presence.join:gsub("###TIME_STUFF###", timeStuff):gsub("###SHOWHIDE###", showJoin):gsub("###NICK###", nick);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
417 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
418 elseif stanza.attr.type ~= nil and stanza.attr.type == "unavailable" then
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
419
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
420 ret = html.day.presence.leave:gsub("###TIME_STUFF###", timeStuff):gsub("###SHOWHIDE###", showJoin):gsub("###NICK###", nick);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
421 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
422 return ret;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
423 end
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
424
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
425 local function parseMessageStanza(stanza, timeStuff, nick)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
426 local body, title, ret = nil, nil, "";
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
427
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
428 for _,tag in ipairs(stanza) do
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
429 if tag.tag == "body" then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
430 body = tag[1];
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
431 if nick ~= nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
432 break;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
433 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
434 elseif tag.tag == "nick" and nick == nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
435 nick = htmlEscape(tag[1]);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
436 if body ~= nil or title ~= nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
437 break;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
438 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
439 elseif tag.tag == "subject" then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
440 title = tag[1];
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
441 if nick ~= nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
442 break;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
443 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
444 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
445 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
446 if nick ~= nil and body ~= nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
447 body = htmlEscape(body);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
448 local me = body:find("^/me");
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
449 local template = "";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
450 if not me then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
451 template = html.day.message;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
452 else
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
453 template = html.day.messageMe;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
454 body = body:gsub("^/me ", "");
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
455 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
456 ret = template:gsub("###TIME_STUFF###", timeStuff):gsub("###NICK###", nick):gsub("###MSG###", body);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
457 elseif nick ~= nil and title ~= nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
458 title = htmlEscape(title);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
459 ret = html.day.titleChange:gsub("###TIME_STUFF###", timeStuff):gsub("###NICK###", nick):gsub("###TITLE###", title);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
460 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
461 return ret;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
462 end
101
e3c09996cf7b mod_muc_log_http: display available days in a calendar view
Thilo Cestonaro <thilo@cestona.ro>
parents: 94
diff changeset
463
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
464 local function incrementDay(bare_day)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
465 local year, month, day = bare_day:match("^(%d%d)(%d%d)(%d%d)");
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
466 local leapyear = false;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
467 module:log("debug", tostring(day).."/"..tostring(month).."/"..tostring(year))
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
468
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
469 day = tonumber(day);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
470 month = tonumber(month);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
471 year = tonumber(year);
101
e3c09996cf7b mod_muc_log_http: display available days in a calendar view
Thilo Cestonaro <thilo@cestona.ro>
parents: 94
diff changeset
472
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
473 if year%4 == 0 and year%100 == 0 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
474 if year%400 == 0 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
475 leapyear = true;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
476 else
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
477 leapyear = false; -- turn of the century but not a leapyear
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
478 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
479 elseif year%4 == 0 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
480 leapyear = true;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
481 end
101
e3c09996cf7b mod_muc_log_http: display available days in a calendar view
Thilo Cestonaro <thilo@cestona.ro>
parents: 94
diff changeset
482
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
483 if (month == 2 and leapyear and day + 1 > 29) or
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
484 (month == 2 and not leapyear and day + 1 > 28) or
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
485 (month < 8 and month%2 == 1 and day + 1 > 31) or
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
486 (month < 8 and month%2 == 0 and day + 1 > 30) or
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
487 (month >= 8 and month%2 == 0 and day + 1 > 31) or
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
488 (month >= 8 and month%2 == 1 and day + 1 > 30)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
489 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
490 if month + 1 > 12 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
491 year = year + 1;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
492 month = 1;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
493 day = 1;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
494 else
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
495 month = month + 1;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
496 day = 1;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
497 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
498 else
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
499 day = day + 1;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
500 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
501 return strformat("%.02d%.02d%.02d", year, month, day);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
502 end
179
af6143756a9e mod_muc_log_http: started new prosody theme
Thilo Cestonaro <thilo@cestona.ro>
parents: 146
diff changeset
503
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
504 local function findNextDay(bareRoomJid, bare_day)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
505 local node, host, resource = splitJid(bareRoomJid);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
506 local day = incrementDay(bare_day);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
507 local max_trys = 7;
179
af6143756a9e mod_muc_log_http: started new prosody theme
Thilo Cestonaro <thilo@cestona.ro>
parents: 146
diff changeset
508
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
509 module:log("debug", day);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
510 while(not checkDatastorePathExists(node, host, day, false)) do
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
511 max_trys = max_trys - 1;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
512 if max_trys == 0 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
513 break;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
514 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
515 day = incrementDay(day);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
516 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
517 if max_trys == 0 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
518 return nil;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
519 else
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
520 return day;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
521 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
522 end
179
af6143756a9e mod_muc_log_http: started new prosody theme
Thilo Cestonaro <thilo@cestona.ro>
parents: 146
diff changeset
523
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
524 local function decrementDay(bare_day)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
525 local year, month, day = bare_day:match("^(%d%d)(%d%d)(%d%d)");
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
526 local leapyear = false;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
527 module:log("debug", tostring(day).."/"..tostring(month).."/"..tostring(year))
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
528
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
529 day = tonumber(day);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
530 month = tonumber(month);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
531 year = tonumber(year);
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
532
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
533 if year%4 == 0 and year%100 == 0 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
534 if year%400 == 0 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
535 leapyear = true;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
536 else
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
537 leapyear = false; -- turn of the century but not a leapyear
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
538 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
539 elseif year%4 == 0 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
540 leapyear = true;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
541 end
94
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
542
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
543 if day - 1 == 0 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
544 if month - 1 == 0 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
545 year = year - 1;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
546 month = 12;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
547 day = 31;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
548 else
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
549 month = month - 1;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
550 if (month == 2 and leapyear) then day = 29
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
551 elseif (month == 2 and not leapyear) then day = 28
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
552 elseif (month < 8 and month%2 == 1) or (month >= 8 and month%2 == 0) then day = 31
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
553 else day = 30
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
554 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
555 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
556 else
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
557 day = day - 1;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
558 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
559 return strformat("%.02d%.02d%.02d", year, month, day);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
560 end
94
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
561
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
562 local function findPreviousDay(bareRoomJid, bare_day)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
563 local node, host, resource = splitJid(bareRoomJid);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
564 local day = decrementDay(bare_day);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
565 local max_trys = 7;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
566 module:log("debug", day);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
567 while(not checkDatastorePathExists(node, host, day, false)) do
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
568 max_trys = max_trys - 1;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
569 if max_trys == 0 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
570 break;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
571 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
572 day = decrementDay(day);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
573 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
574 if max_trys == 0 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
575 return nil;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
576 else
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
577 return day;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
578 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
579 end
94
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
580
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
581 local function parseDay(bareRoomJid, roomSubject, bare_day)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
582 local ret = "";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
583 local year;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
584 local month;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
585 local day;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
586 local tmp;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
587 local node, host, resource = splitJid(bareRoomJid);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
588 local year, month, day = bare_day:match("^(%d%d)(%d%d)(%d%d)");
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
589 local previousDay = findPreviousDay(bareRoomJid, bare_day);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
590 local nextDay = findNextDay(bareRoomJid, bare_day);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
591 local temptime = {day=0, month=0, year=0};
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
592 local path = data_getpath(node, host, datastore);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
593 path = path:gsub("/[^/]*$", "");
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
594 local calendar = ""
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
595
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
596 if tonumber(year) <= 99 then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
597 year = year + 2000;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
598 end
94
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
599
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
600 temptime.day = tonumber(day)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
601 temptime.month = tonumber(month)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
602 temptime.year = tonumber(year)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
603 calendar = createMonth(temptime.month, temptime.year, {callback=perDayCallback, path=path, room=node, webPath="../"}) or ""
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
604
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
605 if bare_day ~= nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
606 local data = data_load(node, host, datastore .. "/" .. bare_day);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
607 if data ~= nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
608 for i=1, #data, 1 do
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
609 local stanza = lom.parse(data[i]);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
610 if stanza ~= nil and stanza.attr ~= nil and stanza.attr.time ~= nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
611 local timeStuff = html.day.time:gsub("###TIME###", stanza.attr.time):gsub("###UTC###", stanza.attr.utc or stanza.attr.time);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
612 if stanza[1] ~= nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
613 local nick;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
614 local tmp;
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
615
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
616 -- grep nick from "from" resource
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
617 if stanza[1].attr.from ~= nil then -- presence and messages
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
618 nick = htmlEscape(stanza[1].attr.from:match("/(.+)$"));
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
619 elseif stanza[1].attr.to ~= nil then -- iq
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
620 nick = htmlEscape(stanza[1].attr.to:match("/(.+)$"));
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
621 end
94
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
622
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
623 if stanza[1].tag == "presence" and nick ~= nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
624 tmp = parsePresenceStanza(stanza[1], timeStuff, nick);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
625 elseif stanza[1].tag == "message" then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
626 tmp = parseMessageStanza(stanza[1], timeStuff, nick);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
627 elseif stanza[1].tag == "iq" then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
628 tmp = parseIqStanza(stanza[1], timeStuff, nick);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
629 else
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
630 module:log("info", "unknown stanza subtag in log found. room: %s; day: %s", bareRoomJid, year .. "/" .. month .. "/" .. day);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
631 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
632 if tmp ~= nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
633 ret = ret .. tmp
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
634 tmp = nil;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
635 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
636 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
637 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
638 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
639 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
640 if ret ~= "" then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
641 if nextDay then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
642 nextDay = html.day.dayLink:gsub("###DAY###", nextDay):gsub("###TEXT###", "&gt;")
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
643 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
644 if previousDay then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
645 previousDay = html.day.dayLink:gsub("###DAY###", previousDay):gsub("###TEXT###", "&lt;");
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
646 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
647 ret = ret:gsub("%%", "%%%%");
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
648 tmp = html.day.body:gsub("###DAY_STUFF###", ret):gsub("###JID###", bareRoomJid);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
649 tmp = tmp:gsub("###CALENDAR###", calendar);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
650 tmp = tmp:gsub("###DATE###", tostring(os_date("%A, %B %d, %Y", os_time(temptime))));
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
651 tmp = tmp:gsub("###TITLE_STUFF###", html.day.title:gsub("###TITLE###", roomSubject));
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
652 tmp = tmp:gsub("###STATUS_CHECKED###", config.showStatus and "checked='checked'" or "");
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
653 tmp = tmp:gsub("###JOIN_CHECKED###", config.showJoin and "checked='checked'" or "");
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
654 tmp = tmp:gsub("###NEXT_LINK###", nextDay or "");
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
655 tmp = tmp:gsub("###PREVIOUS_LINK###", previousDay or "");
94
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
656
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
657 return tmp;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
658 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
659 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
660 end
119
e6592d8305cb mod_muc_log_http: support next, previous day calculations from one month/year to the next or visa versa
Thilo Cestonaro <thilo@cestona.ro>
parents: 118
diff changeset
661
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
662 function handle_request(method, body, request)
384
79983e658bb5 mod_muc_log_http: Cleaned up URL handling.
Waqas Hussain <waqas20@gmail.com>
parents: 383
diff changeset
663 local host, node, day, more = request.url.path:match("^/muc_log/+([^/]*)/*([^/]*)/*([^/]*)/*(.*)$");
79983e658bb5 mod_muc_log_http: Cleaned up URL handling.
Waqas Hussain <waqas20@gmail.com>
parents: 383
diff changeset
664 if more ~= "" then return { status = "404 Not found", body = "Unknown URL" }; end
382
19469f3ad6d6 mod_muc_log_http: Cleaned up URL parsing.
Waqas Hussain <waqas20@gmail.com>
parents: 381
diff changeset
665 if host == "" then host = nil; end
19469f3ad6d6 mod_muc_log_http: Cleaned up URL parsing.
Waqas Hussain <waqas20@gmail.com>
parents: 381
diff changeset
666 if node == "" then node = nil; end
19469f3ad6d6 mod_muc_log_http: Cleaned up URL parsing.
Waqas Hussain <waqas20@gmail.com>
parents: 381
diff changeset
667 if day == "" then day = nil; end
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
668
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
669 node = urldecode(node);
119
e6592d8305cb mod_muc_log_http: support next, previous day calculations from one month/year to the next or visa versa
Thilo Cestonaro <thilo@cestona.ro>
parents: 118
diff changeset
670
384
79983e658bb5 mod_muc_log_http: Cleaned up URL handling.
Waqas Hussain <waqas20@gmail.com>
parents: 383
diff changeset
671 assert(muc_hosts and html.doc, "MUC hosts or theme not loaded");
79983e658bb5 mod_muc_log_http: Cleaned up URL handling.
Waqas Hussain <waqas20@gmail.com>
parents: 383
diff changeset
672
79983e658bb5 mod_muc_log_http: Cleaned up URL handling.
Waqas Hussain <waqas20@gmail.com>
parents: 383
diff changeset
673 if host and not(hosts[host] and hosts[host].modules.muc) then return { status = "404 Not found", body = "No such MUC component" }; end
79983e658bb5 mod_muc_log_http: Cleaned up URL handling.
Waqas Hussain <waqas20@gmail.com>
parents: 383
diff changeset
674 if host and node and not(muc_hosts[host].modules.muc.rooms[node.."@"..host]) then return { status = "404 Not found", body = "No such MUC room" }; end
79983e658bb5 mod_muc_log_http: Cleaned up URL handling.
Waqas Hussain <waqas20@gmail.com>
parents: 383
diff changeset
675
79983e658bb5 mod_muc_log_http: Cleaned up URL handling.
Waqas Hussain <waqas20@gmail.com>
parents: 383
diff changeset
676 if not host then -- main component list
79983e658bb5 mod_muc_log_http: Cleaned up URL handling.
Waqas Hussain <waqas20@gmail.com>
parents: 383
diff changeset
677 return createDoc(generateComponentListSiteContent());
79983e658bb5 mod_muc_log_http: Cleaned up URL handling.
Waqas Hussain <waqas20@gmail.com>
parents: 383
diff changeset
678 elseif not node then -- room list for component
79983e658bb5 mod_muc_log_http: Cleaned up URL handling.
Waqas Hussain <waqas20@gmail.com>
parents: 383
diff changeset
679 return createDoc(generateRoomListSiteContent(host));
79983e658bb5 mod_muc_log_http: Cleaned up URL handling.
Waqas Hussain <waqas20@gmail.com>
parents: 383
diff changeset
680 elseif not day then -- room's listing
79983e658bb5 mod_muc_log_http: Cleaned up URL handling.
Waqas Hussain <waqas20@gmail.com>
parents: 383
diff changeset
681 return createDoc(generateDayListSiteContentByRoom(node.."@"..host));
79983e658bb5 mod_muc_log_http: Cleaned up URL handling.
Waqas Hussain <waqas20@gmail.com>
parents: 383
diff changeset
682 else
79983e658bb5 mod_muc_log_http: Cleaned up URL handling.
Waqas Hussain <waqas20@gmail.com>
parents: 383
diff changeset
683 local room = muc_hosts[host].modules.muc.rooms[node.."@"..host];
79983e658bb5 mod_muc_log_http: Cleaned up URL handling.
Waqas Hussain <waqas20@gmail.com>
parents: 383
diff changeset
684 return createDoc(parseDay(node.."@"..host, room._data.subject or "", day:gsub("%-", "")));
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
685 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
686 end
94
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
687
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
688 -- Compatibility: Lua-5.1
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
689 function split(str, pat)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
690 local t = {} -- NOTE: use {n = 0} in Lua-5.0
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
691 local fpat = "(.-)" .. pat
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
692 local last_end = 1
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
693 local s, e, cap = str:find(fpat, 1)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
694 while s do
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
695 if s ~= 1 or cap ~= "" then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
696 table.insert(t,cap)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
697 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
698 last_end = e+1
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
699 s, e, cap = str:find(fpat, last_end)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
700 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
701 if last_end <= #str then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
702 cap = str:sub(last_end)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
703 table.insert(t, cap)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
704 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
705 return t
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
706 end
179
af6143756a9e mod_muc_log_http: started new prosody theme
Thilo Cestonaro <thilo@cestona.ro>
parents: 146
diff changeset
707
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
708 local function assign(arr, content)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
709 local tmp = html;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
710 local idx = nil;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
711 for _,i in ipairs(arr) do
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
712 if idx ~= nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
713 if tmp[idx] == nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
714 tmp[idx] = {};
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
715 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
716 tmp = tmp[idx];
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
717 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
718 idx = i;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
719 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
720 tmp[idx] = content;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
721 end
94
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
722
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
723 local function readFile(filepath)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
724 local f = assert(io_open(filepath, "r"));
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
725 local t = f:read("*all");
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
726 f:close()
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
727 return t;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
728 end
344
2b0f2160fc61 mod_muc_log_http: Fix room name encoding/decoding (for UTF-8 room names)
Joseph Wallace <JosephWallace@letu.edu>
parents: 343
diff changeset
729
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
730 local function loadTheme(path)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
731 for file in lfs.dir(path) do
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
732 if file ~= "." and file ~= ".." then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
733 module:log("debug", "opening theme file: " .. file);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
734 local tmp = split(file:gsub("\.html$", ""), "_");
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
735 local content = readFile(path .. "/" .. file);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
736 assign(tmp, content);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
737 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
738 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
739 return true;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
740 end
348
03e1dc036a28 mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents: 344
diff changeset
741
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
742 function module.load()
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
743 config = config_get("*", "core", "muc_log_http") or {};
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
744 if config.showStatus == nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
745 config.showStatus = true;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
746 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
747 if config.showJoin == nil then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
748 config.showJoin = true;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
749 end
94
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
750
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
751 theme = config.theme or "prosody";
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
752 local themePath = themesParent .. "/" .. tostring(theme);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
753 local attributes, err = lfs.attributes(themePath);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
754 if attributes == nil or attributes.mode ~= "directory" then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
755 module:log("error", "Theme folder of theme \"".. tostring(theme) .. "\" isn't existing. expected Path: " .. themePath);
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
756 return false;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
757 end
105
cef943f0a551 mod_muc_log_http: themified ...
Thilo Cestonaro <thilo@cestona.ro>
parents: 104
diff changeset
758
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
759 -- module:log("debug", (require "util.serialization").serialize(html));
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
760 if(not loadTheme(themePath)) then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
761 module:log("error", "Theme \"".. tostring(theme) .. "\" is missing something.");
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
762 return false;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
763 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
764 -- module:log("debug", (require "util.serialization").serialize(html));
105
cef943f0a551 mod_muc_log_http: themified ...
Thilo Cestonaro <thilo@cestona.ro>
parents: 104
diff changeset
765
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
766 httpserver.new_from_config({ config.http_port or true }, handle_request, { base = urlBase, ssl = false, port = 5290 });
105
cef943f0a551 mod_muc_log_http: themified ...
Thilo Cestonaro <thilo@cestona.ro>
parents: 104
diff changeset
767
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
768 for jid, host in pairs(prosody.hosts) do
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
769 if host.muc then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
770 local enabledModules = config_get(jid, "core", "modules_enabled");
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
771 if enabledModules then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
772 for _,mod in ipairs(enabledModules) do
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
773 if(mod == "muc_log") then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
774 module:log("debug", "component: %s", tostring(jid));
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
775 muc_hosts[jid] = true;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
776 break;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
777 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
778 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
779 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
780 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
781 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
782 module:log("debug", "loaded mod_muc_log_http");
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
783 end
105
cef943f0a551 mod_muc_log_http: themified ...
Thilo Cestonaro <thilo@cestona.ro>
parents: 104
diff changeset
784
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
785 function module.unload()
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
786 muc_hosts = nil;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
787 module:log("debug", "unloaded mod_muc_log_http");
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
788 end
94
941fd7d8b9b2 mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff changeset
789
380
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
790 module:hook("component-activated", function(component, config)
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
791 if config.core and config.core.modules_enabled then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
792 for _,mod in ipairs(config.core.modules_enabled) do
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
793 if(mod == "muc_log") then
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
794 module:log("debug", "component: %s", tostring(component));
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
795 muc_hosts[component] = true;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
796 break;
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
797 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
798 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
799 end
5ef71af77ae2 mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents: 348
diff changeset
800 end);