Mercurial > prosody-modules
annotate mod_muc_log_http/muc_log_http/mod_muc_log_http.lua @ 684:27529031890b
mod_host_guard: now a proper error is returned when stanzas are routed to a filtered remote server (thanks Zash)
author | Marco Cirillo <maranda@lightwitch.org> |
---|---|
date | Sun, 27 May 2012 02:44:06 +0000 |
parents | a634b116c694 |
children | adcb751f22f3 |
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 config = nil; |
101
e3c09996cf7b
mod_muc_log_http: display available days in a calendar view
Thilo Cestonaro <thilo@cestona.ro>
parents:
94
diff
changeset
|
25 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
|
26 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
|
27 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
|
28 local str_format = string.format; |
105
cef943f0a551
mod_muc_log_http: themified ...
Thilo Cestonaro <thilo@cestona.ro>
parents:
104
diff
changeset
|
29 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
|
30 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
|
31 |
941fd7d8b9b2
mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff
changeset
|
32 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
|
33 |
348
03e1dc036a28
mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents:
344
diff
changeset
|
34 --[[ LuaFileSystem |
94
941fd7d8b9b2
mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff
changeset
|
35 * 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
|
36 * 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
|
37 * ]] |
941fd7d8b9b2
mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff
changeset
|
38 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
|
39 |
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 * 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
|
43 ]]-- |
941fd7d8b9b2
mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff
changeset
|
44 local html = {}; |
183
9d4fd01443eb
mod_muc_log_http: ensure to have the default being "prosody"
Thilo Cestonaro <thilo@cestona.ro>
parents:
180
diff
changeset
|
45 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
|
46 |
941fd7d8b9b2
mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff
changeset
|
47 local function checkDatastorePathExists(node, host, today, create) |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
48 create = create or false; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
49 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
|
50 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
|
51 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
52 -- check existance |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
53 local attributes, err = lfs.attributes(path); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
54 if attributes == nil or attributes.mode ~= "directory" then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
55 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
|
56 return false; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
57 end |
94
941fd7d8b9b2
mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff
changeset
|
58 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
59 attributes, err = lfs.attributes(path .. "/" .. today); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
60 if attributes == nil then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
61 if create then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
62 return lfs.mkdir(path .. "/" .. today); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
63 else |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
64 return false; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
65 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
66 elseif attributes.mode == "directory" then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
67 return true; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
68 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
69 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
|
70 end |
941fd7d8b9b2
mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff
changeset
|
71 |
941fd7d8b9b2
mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff
changeset
|
72 local function htmlEscape(t) |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
73 if t then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
74 t = t:gsub("<", "<"); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
75 t = t:gsub(">", ">"); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
76 t = t:gsub("(http://[%a%d@%.:/&%?=%-_#%%~]+)", function(h) |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
77 h = urlunescape(h) |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
78 return "<a href='" .. h .. "'>" .. h .. "</a>"; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
79 end); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
80 t = t:gsub("\n", "<br />"); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
81 t = t:gsub("%%", "%%%%"); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
82 else |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
83 t = ""; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
84 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
85 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
|
86 end |
941fd7d8b9b2
mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff
changeset
|
87 |
393
20ef4a289d7d
mod_muc_log_http: Improved page titles a little.
Waqas Hussain <waqas20@gmail.com>
parents:
392
diff
changeset
|
88 function createDoc(body, title) |
578
1a575bcbc843
mod_muc_log_http: Return a proper 404 Not Found page on missing pages instead of a traceback.
Waqas Hussain <waqas20@gmail.com>
parents:
393
diff
changeset
|
89 if not body then |
1a575bcbc843
mod_muc_log_http: Return a proper 404 Not Found page on missing pages instead of a traceback.
Waqas Hussain <waqas20@gmail.com>
parents:
393
diff
changeset
|
90 return { status = "404 Not Found", body = "<h1>Page Not Found</h1>Sorry, we couldn't find what you were looking for :(" }; |
1a575bcbc843
mod_muc_log_http: Return a proper 404 Not Found page on missing pages instead of a traceback.
Waqas Hussain <waqas20@gmail.com>
parents:
393
diff
changeset
|
91 end |
393
20ef4a289d7d
mod_muc_log_http: Improved page titles a little.
Waqas Hussain <waqas20@gmail.com>
parents:
392
diff
changeset
|
92 body = body:gsub("%%", "%%%%"); |
20ef4a289d7d
mod_muc_log_http: Improved page titles a little.
Waqas Hussain <waqas20@gmail.com>
parents:
392
diff
changeset
|
93 return html.doc:gsub("###BODY_STUFF###", body) |
20ef4a289d7d
mod_muc_log_http: Improved page titles a little.
Waqas Hussain <waqas20@gmail.com>
parents:
392
diff
changeset
|
94 :gsub("<title>muc_log</title>", "<title>"..(title and htmlEscape(title) or "Chatroom logs").."</title>"); |
20ef4a289d7d
mod_muc_log_http: Improved page titles a little.
Waqas Hussain <waqas20@gmail.com>
parents:
392
diff
changeset
|
95 end |
20ef4a289d7d
mod_muc_log_http: Improved page titles a little.
Waqas Hussain <waqas20@gmail.com>
parents:
392
diff
changeset
|
96 |
20ef4a289d7d
mod_muc_log_http: Improved page titles a little.
Waqas Hussain <waqas20@gmail.com>
parents:
392
diff
changeset
|
97 function urlunescape (escapedUrl) |
20ef4a289d7d
mod_muc_log_http: Improved page titles a little.
Waqas Hussain <waqas20@gmail.com>
parents:
392
diff
changeset
|
98 escapedUrl = escapedUrl:gsub("+", " ") |
20ef4a289d7d
mod_muc_log_http: Improved page titles a little.
Waqas Hussain <waqas20@gmail.com>
parents:
392
diff
changeset
|
99 escapedUrl = escapedUrl:gsub("%%(%x%x)", function(h) return strchar(tonumber(h,16)) end) |
20ef4a289d7d
mod_muc_log_http: Improved page titles a little.
Waqas Hussain <waqas20@gmail.com>
parents:
392
diff
changeset
|
100 escapedUrl = escapedUrl:gsub("\r\n", "\n") |
20ef4a289d7d
mod_muc_log_http: Improved page titles a little.
Waqas Hussain <waqas20@gmail.com>
parents:
392
diff
changeset
|
101 return escapedUrl |
20ef4a289d7d
mod_muc_log_http: Improved page titles a little.
Waqas Hussain <waqas20@gmail.com>
parents:
392
diff
changeset
|
102 end |
20ef4a289d7d
mod_muc_log_http: Improved page titles a little.
Waqas Hussain <waqas20@gmail.com>
parents:
392
diff
changeset
|
103 |
94
941fd7d8b9b2
mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff
changeset
|
104 local function generateComponentListSiteContent() |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
105 local components = ""; |
390
8090d246c268
mod_muc_log_http: Removed some more code. Module now no longer attempts to track muc_log hosts on its own.
Waqas Hussain <waqas20@gmail.com>
parents:
389
diff
changeset
|
106 for component,host in pairs(hosts) do |
8090d246c268
mod_muc_log_http: Removed some more code. Module now no longer attempts to track muc_log hosts on its own.
Waqas Hussain <waqas20@gmail.com>
parents:
389
diff
changeset
|
107 if host.modules.muc and host.modules.muc_log then |
8090d246c268
mod_muc_log_http: Removed some more code. Module now no longer attempts to track muc_log hosts on its own.
Waqas Hussain <waqas20@gmail.com>
parents:
389
diff
changeset
|
108 components = components .. html.components.bit:gsub("###COMPONENT###", component); |
8090d246c268
mod_muc_log_http: Removed some more code. Module now no longer attempts to track muc_log hosts on its own.
Waqas Hussain <waqas20@gmail.com>
parents:
389
diff
changeset
|
109 end |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
110 end |
393
20ef4a289d7d
mod_muc_log_http: Improved page titles a little.
Waqas Hussain <waqas20@gmail.com>
parents:
392
diff
changeset
|
111 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
|
112 end |
941fd7d8b9b2
mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff
changeset
|
113 |
941fd7d8b9b2
mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff
changeset
|
114 local function generateRoomListSiteContent(component) |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
115 local rooms = ""; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
116 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
|
117 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
|
118 local node = splitJid(jid); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
119 if not room._data.hidden and node then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
120 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
|
121 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
122 end |
393
20ef4a289d7d
mod_muc_log_http: Improved page titles a little.
Waqas Hussain <waqas20@gmail.com>
parents:
392
diff
changeset
|
123 return html.rooms.body:gsub("###ROOMS_STUFF###", rooms):gsub("###COMPONENT###", component), "Chatroom logs for "..component; |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
124 end |
94
941fd7d8b9b2
mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff
changeset
|
125 end |
941fd7d8b9b2
mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff
changeset
|
126 |
101
e3c09996cf7b
mod_muc_log_http: display available days in a calendar view
Thilo Cestonaro <thilo@cestona.ro>
parents:
94
diff
changeset
|
127 -- Calendar stuff |
386
d54dbbfda3bb
mod_muc_log_http: Simplified calculating day count for a month.
Waqas Hussain <waqas20@gmail.com>
parents:
385
diff
changeset
|
128 local function get_days_for_month(month, year) |
d54dbbfda3bb
mod_muc_log_http: Simplified calculating day count for a month.
Waqas Hussain <waqas20@gmail.com>
parents:
385
diff
changeset
|
129 if month == 2 then |
d54dbbfda3bb
mod_muc_log_http: Simplified calculating day count for a month.
Waqas Hussain <waqas20@gmail.com>
parents:
385
diff
changeset
|
130 local is_leap_year = (year % 4 == 0 and year % 100 ~= 0) or year % 400 == 0; |
d54dbbfda3bb
mod_muc_log_http: Simplified calculating day count for a month.
Waqas Hussain <waqas20@gmail.com>
parents:
385
diff
changeset
|
131 return is_leap_year and 29 or 28; |
d54dbbfda3bb
mod_muc_log_http: Simplified calculating day count for a month.
Waqas Hussain <waqas20@gmail.com>
parents:
385
diff
changeset
|
132 elseif (month < 8 and month%2 == 1) or (month >= 8 and month%2 == 0) then |
d54dbbfda3bb
mod_muc_log_http: Simplified calculating day count for a month.
Waqas Hussain <waqas20@gmail.com>
parents:
385
diff
changeset
|
133 return 31; |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
134 end |
386
d54dbbfda3bb
mod_muc_log_http: Simplified calculating day count for a month.
Waqas Hussain <waqas20@gmail.com>
parents:
385
diff
changeset
|
135 return 30; |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
136 end |
348
03e1dc036a28
mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents:
344
diff
changeset
|
137 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
138 local function createMonth(month, year, dayCallback) |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
139 local htmlStr = html.month.header; |
386
d54dbbfda3bb
mod_muc_log_http: Simplified calculating day count for a month.
Waqas Hussain <waqas20@gmail.com>
parents:
385
diff
changeset
|
140 local days = get_days_for_month(month, year); |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
141 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
|
142 local dow = tostring(os_date("%a", time)) |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
143 local title = tostring(os_date("%B", time)); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
144 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
|
145 local weekDay = 0; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
146 local weeks = 1; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
147 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
|
148 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
149 local weekDaysHtml = ""; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
150 for _, tmp in ipairs(weekDays) do |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
151 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
|
152 end |
348
03e1dc036a28
mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents:
344
diff
changeset
|
153 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
154 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
|
155 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
156 for i = 1, 31 do |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
157 weekDay = weekDay + 1; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
158 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
|
159 if i == 1 then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
160 for _, tmp in ipairs(weekDays) do |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
161 if dow ~= tmp then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
162 htmlStr = htmlStr .. html.month.emptyDay .. "\n"; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
163 weekDay = weekDay + 1; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
164 else |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
165 break; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
166 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
167 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
168 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
169 if i < days + 1 then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
170 local tmp = tostring(i); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
171 if dayCallback ~= nil and dayCallback.callback ~= nil then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
172 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
|
173 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
174 if tmp == nil then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
175 tmp = tostring(i); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
176 else |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
177 logAvailableForMinimumOneDay = true; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
178 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
179 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
|
180 end |
348
03e1dc036a28
mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents:
344
diff
changeset
|
181 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
182 if i >= days then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
183 break; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
184 end |
101
e3c09996cf7b
mod_muc_log_http: display available days in a calendar view
Thilo Cestonaro <thilo@cestona.ro>
parents:
94
diff
changeset
|
185 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
186 if weekDay == 7 then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
187 weekDay = 0; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
188 weeks = weeks + 1; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
189 htmlStr = htmlStr .. "</tr>\n"; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
190 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
191 end |
348
03e1dc036a28
mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents:
344
diff
changeset
|
192 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
193 if weekDay + 1 < 8 or weeks < 6 then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
194 weekDay = weekDay + 1; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
195 if weekDay > 7 then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
196 weekDay = 1; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
197 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
198 if weekDay == 1 then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
199 weeks = weeks + 1; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
200 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
201 for y = weeks, 6 do |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
202 if weekDay == 1 then |
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 for i = weekDay, 7 do |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
206 htmlStr = htmlStr .. html.month.emptyDay .. "\n"; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
207 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
208 weekDay = 1 |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
209 htmlStr = htmlStr .. "</tr>\n"; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
210 end |
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 htmlStr = htmlStr .. html.month.footer; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
213 if logAvailableForMinimumOneDay then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
214 return htmlStr; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
215 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
216 end |
101
e3c09996cf7b
mod_muc_log_http: display available days in a calendar view
Thilo Cestonaro <thilo@cestona.ro>
parents:
94
diff
changeset
|
217 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
218 local function createYear(year, dayCallback) |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
219 local year = year; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
220 local tmp; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
221 if tonumber(year) <= 99 then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
222 year = year + 2000; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
223 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
224 local htmlStr = ""; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
225 for i=1, 12 do |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
226 tmp = createMonth(i, year, dayCallback); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
227 if tmp then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
228 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
|
229 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
230 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
231 if htmlStr ~= "" then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
232 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
|
233 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
234 return ""; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
235 end |
348
03e1dc036a28
mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents:
344
diff
changeset
|
236 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
237 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
|
238 local webPath = webPath or "" |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
239 local year = year; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
240 if year > 2000 then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
241 year = year - 2000; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
242 end |
583
a634b116c694
mod_muc_log_http: Use YYYY-MM-DD in URLs instead of the confusing YYMMDD.
Waqas Hussain <waqas20@gmail.com>
parents:
582
diff
changeset
|
243 local bareDay = str_format("20%.02d-%.02d-%.02d", year, month, day); |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
244 room = urlencode(room); |
583
a634b116c694
mod_muc_log_http: Use YYYY-MM-DD in URLs instead of the confusing YYMMDD.
Waqas Hussain <waqas20@gmail.com>
parents:
582
diff
changeset
|
245 local attributes, err = lfs.attributes(path.."/"..str_format("%.02d%.02d%.02d", year, month, day).."/"..room..".dat") |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
246 if attributes ~= nil and attributes.mode == "file" then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
247 local s = html.days.bit; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
248 s = s:gsub("###BARE_DAY###", webPath .. bareDay); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
249 s = s:gsub("###DAY###", day); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
250 return s; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
251 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
252 return; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
253 end |
101
e3c09996cf7b
mod_muc_log_http: display available days in a calendar view
Thilo Cestonaro <thilo@cestona.ro>
parents:
94
diff
changeset
|
254 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
255 local function generateDayListSiteContentByRoom(bareRoomJid) |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
256 local days = ""; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
257 local arrDays = {}; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
258 local tmp; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
259 local node, host, resource = splitJid(bareRoomJid); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
260 local path = data_getpath(node, host, datastore); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
261 local room = nil; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
262 local nextRoom = ""; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
263 local previousRoom = ""; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
264 local rooms = ""; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
265 local attributes = nil; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
266 local since = ""; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
267 local to = ""; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
268 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
|
269 |
579
513aa6fed9e9
mod_muc_log_http: Don't return a page on missing rooms.
Waqas Hussain <waqas20@gmail.com>
parents:
578
diff
changeset
|
270 if not(prosody.hosts[host] and prosody.hosts[host].muc and prosody.hosts[host].muc.rooms[bareRoomJid]) then |
513aa6fed9e9
mod_muc_log_http: Don't return a page on missing rooms.
Waqas Hussain <waqas20@gmail.com>
parents:
578
diff
changeset
|
271 return; |
513aa6fed9e9
mod_muc_log_http: Don't return a page on missing rooms.
Waqas Hussain <waqas20@gmail.com>
parents:
578
diff
changeset
|
272 end |
513aa6fed9e9
mod_muc_log_http: Don't return a page on missing rooms.
Waqas Hussain <waqas20@gmail.com>
parents:
578
diff
changeset
|
273 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
274 path = path:gsub("/[^/]*$", ""); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
275 attributes = lfs.attributes(path); |
390
8090d246c268
mod_muc_log_http: Removed some more code. Module now no longer attempts to track muc_log hosts on its own.
Waqas Hussain <waqas20@gmail.com>
parents:
389
diff
changeset
|
276 do |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
277 local found = 0; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
278 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
|
279 local node = splitJid(jid) |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
280 if not room._data.hidden and node then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
281 if found == 0 then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
282 previousRoom = node |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
283 elseif found == 1 then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
284 nextRoom = node |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
285 found = -1 |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
286 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
287 if jid == bareRoomJid then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
288 found = 1 |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
289 end |
348
03e1dc036a28
mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents:
344
diff
changeset
|
290 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
291 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
|
292 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
293 end |
348
03e1dc036a28
mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents:
344
diff
changeset
|
294 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
295 room = prosody.hosts[host].muc.rooms[bareRoomJid]; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
296 if room._data.hidden then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
297 room = nil |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
298 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
299 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
300 if attributes ~= nil and room ~= nil then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
301 local alreadyDoneYears = {}; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
302 topic = room._data.subject or "(no subject)" |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
303 if topic:len() > 135 then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
304 topic = topic:sub(1, topic:find(" ", 120)) .. " ..." |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
305 end |
391
99e7ef4fc7d2
mod_muc_log_http: Properly sort calendar listing.
Waqas Hussain <waqas20@gmail.com>
parents:
390
diff
changeset
|
306 local folders = {}; |
99e7ef4fc7d2
mod_muc_log_http: Properly sort calendar listing.
Waqas Hussain <waqas20@gmail.com>
parents:
390
diff
changeset
|
307 for folder in lfs.dir(path) do table.insert(folders, folder); end |
99e7ef4fc7d2
mod_muc_log_http: Properly sort calendar listing.
Waqas Hussain <waqas20@gmail.com>
parents:
390
diff
changeset
|
308 table.sort(folders); |
99e7ef4fc7d2
mod_muc_log_http: Properly sort calendar listing.
Waqas Hussain <waqas20@gmail.com>
parents:
390
diff
changeset
|
309 for _, folder in ipairs(folders) do |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
310 local year, month, day = folder:match("^(%d%d)(%d%d)(%d%d)"); |
392
369e665ae471
mod_muc_log_http: Show proper time period in the headline.
Waqas Hussain <waqas20@gmail.com>
parents:
391
diff
changeset
|
311 if year then |
369e665ae471
mod_muc_log_http: Show proper time period in the headline.
Waqas Hussain <waqas20@gmail.com>
parents:
391
diff
changeset
|
312 to = tostring(os_date("%B %Y", os_time({ day=tonumber(day), month=tonumber(month), year=2000+tonumber(year) }))); |
369e665ae471
mod_muc_log_http: Show proper time period in the headline.
Waqas Hussain <waqas20@gmail.com>
parents:
391
diff
changeset
|
313 if since == "" then since = to; end |
369e665ae471
mod_muc_log_http: Show proper time period in the headline.
Waqas Hussain <waqas20@gmail.com>
parents:
391
diff
changeset
|
314 if not alreadyDoneYears[year] then |
369e665ae471
mod_muc_log_http: Show proper time period in the headline.
Waqas Hussain <waqas20@gmail.com>
parents:
391
diff
changeset
|
315 module:log("debug", "creating overview for: %s", to); |
369e665ae471
mod_muc_log_http: Show proper time period in the headline.
Waqas Hussain <waqas20@gmail.com>
parents:
391
diff
changeset
|
316 days = createYear(year, {callback=perDayCallback, path=path, room=node}) .. days; |
369e665ae471
mod_muc_log_http: Show proper time period in the headline.
Waqas Hussain <waqas20@gmail.com>
parents:
391
diff
changeset
|
317 alreadyDoneYears[year] = true; |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
318 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
319 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
320 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
321 end |
348
03e1dc036a28
mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents:
344
diff
changeset
|
322 |
388
75aea9752062
mod_muc_log_http: Generate room calendar page even when there is no log data.
Waqas Hussain <waqas20@gmail.com>
parents:
387
diff
changeset
|
323 tmp = html.days.body:gsub("###DAYS_STUFF###", days); |
75aea9752062
mod_muc_log_http: Generate room calendar page even when there is no log data.
Waqas Hussain <waqas20@gmail.com>
parents:
387
diff
changeset
|
324 tmp = tmp:gsub("###PREVIOUS_ROOM###", previousRoom == "" and node or previousRoom); |
75aea9752062
mod_muc_log_http: Generate room calendar page even when there is no log data.
Waqas Hussain <waqas20@gmail.com>
parents:
387
diff
changeset
|
325 tmp = tmp:gsub("###NEXT_ROOM###", nextRoom == "" and node or nextRoom); |
75aea9752062
mod_muc_log_http: Generate room calendar page even when there is no log data.
Waqas Hussain <waqas20@gmail.com>
parents:
387
diff
changeset
|
326 tmp = tmp:gsub("###ROOMS###", rooms); |
75aea9752062
mod_muc_log_http: Generate room calendar page even when there is no log data.
Waqas Hussain <waqas20@gmail.com>
parents:
387
diff
changeset
|
327 tmp = tmp:gsub("###ROOMTOPIC###", topic); |
75aea9752062
mod_muc_log_http: Generate room calendar page even when there is no log data.
Waqas Hussain <waqas20@gmail.com>
parents:
387
diff
changeset
|
328 tmp = tmp:gsub("###SINCE###", since); |
75aea9752062
mod_muc_log_http: Generate room calendar page even when there is no log data.
Waqas Hussain <waqas20@gmail.com>
parents:
387
diff
changeset
|
329 tmp = tmp:gsub("###TO###", to); |
393
20ef4a289d7d
mod_muc_log_http: Improved page titles a little.
Waqas Hussain <waqas20@gmail.com>
parents:
392
diff
changeset
|
330 return tmp:gsub("###JID###", bareRoomJid), "Chatroom logs for "..bareRoomJid; |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
331 end |
101
e3c09996cf7b
mod_muc_log_http: display available days in a calendar view
Thilo Cestonaro <thilo@cestona.ro>
parents:
94
diff
changeset
|
332 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
333 local function parseIqStanza(stanza, timeStuff, nick) |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
334 local text = nil; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
335 local victim = nil; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
336 if(stanza.attr.type == "set") then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
337 for _,tag in ipairs(stanza) do |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
338 if tag.tag == "query" then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
339 for _,item in ipairs(tag) do |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
340 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
|
341 victim = item.attr.nick; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
342 for _,reason in ipairs(item) do |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
343 if reason.tag == "reason" then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
344 text = reason[1]; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
345 break; |
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 |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
348 break; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
349 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
350 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
351 break; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
352 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
353 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
354 if victim ~= nil then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
355 if text ~= nil then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
356 text = html.day.reason:gsub("###REASON###", htmlEscape(text)); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
357 else |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
358 text = ""; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
359 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
360 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
|
361 end |
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 return; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
364 end |
348
03e1dc036a28
mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents:
344
diff
changeset
|
365 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
366 local function parsePresenceStanza(stanza, timeStuff, nick) |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
367 local ret = ""; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
368 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
|
369 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
370 if config and not config.showJoin then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
371 showJoin = "none"; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
372 end |
348
03e1dc036a28
mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents:
344
diff
changeset
|
373 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
374 if stanza.attr.type == nil then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
375 local showStatus = "block" |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
376 if config and not config.showStatus then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
377 showStatus = "none"; |
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 local show, status = nil, ""; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
380 local alreadyJoined = false; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
381 for _, tag in ipairs(stanza) do |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
382 if tag.tag == "alreadyJoined" then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
383 alreadyJoined = true; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
384 elseif tag.tag == "show" then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
385 show = tag[1]; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
386 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
|
387 status = tag[1]; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
388 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
389 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
390 if alreadyJoined == true then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
391 if show == nil then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
392 show = "online"; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
393 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
394 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
|
395 if status ~= "" then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
396 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
|
397 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
398 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
|
399 else |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
400 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
|
401 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
402 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
|
403 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
404 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
|
405 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
406 return ret; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
407 end |
348
03e1dc036a28
mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents:
344
diff
changeset
|
408 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
409 local function parseMessageStanza(stanza, timeStuff, nick) |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
410 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
|
411 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
412 for _,tag in ipairs(stanza) do |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
413 if tag.tag == "body" then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
414 body = tag[1]; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
415 if nick ~= nil then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
416 break; |
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 tag.tag == "nick" and nick == nil then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
419 nick = htmlEscape(tag[1]); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
420 if body ~= nil or title ~= nil then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
421 break; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
422 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
423 elseif tag.tag == "subject" then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
424 title = tag[1]; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
425 if nick ~= nil then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
426 break; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
427 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
428 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
429 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
430 if nick ~= nil and body ~= nil then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
431 body = htmlEscape(body); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
432 local me = body:find("^/me"); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
433 local template = ""; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
434 if not me then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
435 template = html.day.message; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
436 else |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
437 template = html.day.messageMe; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
438 body = body:gsub("^/me ", ""); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
439 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
440 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
|
441 elseif nick ~= nil and title ~= nil then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
442 title = htmlEscape(title); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
443 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
|
444 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
445 return ret; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
446 end |
101
e3c09996cf7b
mod_muc_log_http: display available days in a calendar view
Thilo Cestonaro <thilo@cestona.ro>
parents:
94
diff
changeset
|
447 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
448 local function incrementDay(bare_day) |
583
a634b116c694
mod_muc_log_http: Use YYYY-MM-DD in URLs instead of the confusing YYMMDD.
Waqas Hussain <waqas20@gmail.com>
parents:
582
diff
changeset
|
449 local year, month, day = bare_day:match("^20(%d%d)-(%d%d)-(%d%d)$"); |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
450 local leapyear = false; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
451 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
|
452 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
453 day = tonumber(day); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
454 month = tonumber(month); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
455 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
|
456 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
457 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
|
458 if year%400 == 0 then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
459 leapyear = true; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
460 else |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
461 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
|
462 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
463 elseif year%4 == 0 then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
464 leapyear = true; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
465 end |
101
e3c09996cf7b
mod_muc_log_http: display available days in a calendar view
Thilo Cestonaro <thilo@cestona.ro>
parents:
94
diff
changeset
|
466 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
467 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
|
468 (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
|
469 (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
|
470 (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
|
471 (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
|
472 (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
|
473 then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
474 if month + 1 > 12 then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
475 year = year + 1; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
476 month = 1; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
477 day = 1; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
478 else |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
479 month = month + 1; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
480 day = 1; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
481 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
482 else |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
483 day = day + 1; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
484 end |
583
a634b116c694
mod_muc_log_http: Use YYYY-MM-DD in URLs instead of the confusing YYMMDD.
Waqas Hussain <waqas20@gmail.com>
parents:
582
diff
changeset
|
485 return strformat("20%.02d-%.02d-%.02d", year, month, day); |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
486 end |
179
af6143756a9e
mod_muc_log_http: started new prosody theme
Thilo Cestonaro <thilo@cestona.ro>
parents:
146
diff
changeset
|
487 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
488 local function findNextDay(bareRoomJid, bare_day) |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
489 local node, host, resource = splitJid(bareRoomJid); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
490 local day = incrementDay(bare_day); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
491 local max_trys = 7; |
179
af6143756a9e
mod_muc_log_http: started new prosody theme
Thilo Cestonaro <thilo@cestona.ro>
parents:
146
diff
changeset
|
492 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
493 module:log("debug", day); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
494 while(not checkDatastorePathExists(node, host, day, false)) do |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
495 max_trys = max_trys - 1; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
496 if max_trys == 0 then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
497 break; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
498 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
499 day = incrementDay(day); |
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 if max_trys == 0 then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
502 return nil; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
503 else |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
504 return day; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
505 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
506 end |
179
af6143756a9e
mod_muc_log_http: started new prosody theme
Thilo Cestonaro <thilo@cestona.ro>
parents:
146
diff
changeset
|
507 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
508 local function decrementDay(bare_day) |
583
a634b116c694
mod_muc_log_http: Use YYYY-MM-DD in URLs instead of the confusing YYMMDD.
Waqas Hussain <waqas20@gmail.com>
parents:
582
diff
changeset
|
509 local year, month, day = bare_day:match("^20(%d%d)-(%d%d)-(%d%d)$"); |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
510 local leapyear = false; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
511 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
|
512 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
513 day = tonumber(day); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
514 month = tonumber(month); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
515 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
|
516 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
517 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
|
518 if year%400 == 0 then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
519 leapyear = true; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
520 else |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
521 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
|
522 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
523 elseif year%4 == 0 then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
524 leapyear = true; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
525 end |
94
941fd7d8b9b2
mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff
changeset
|
526 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
527 if day - 1 == 0 then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
528 if month - 1 == 0 then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
529 year = year - 1; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
530 month = 12; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
531 day = 31; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
532 else |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
533 month = month - 1; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
534 if (month == 2 and leapyear) then day = 29 |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
535 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
|
536 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
|
537 else day = 30 |
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 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
540 else |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
541 day = day - 1; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
542 end |
583
a634b116c694
mod_muc_log_http: Use YYYY-MM-DD in URLs instead of the confusing YYMMDD.
Waqas Hussain <waqas20@gmail.com>
parents:
582
diff
changeset
|
543 return strformat("20%.02d-%.02d-%.02d", year, month, day); |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
544 end |
94
941fd7d8b9b2
mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff
changeset
|
545 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
546 local function findPreviousDay(bareRoomJid, bare_day) |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
547 local node, host, resource = splitJid(bareRoomJid); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
548 local day = decrementDay(bare_day); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
549 local max_trys = 7; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
550 module:log("debug", day); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
551 while(not checkDatastorePathExists(node, host, day, false)) do |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
552 max_trys = max_trys - 1; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
553 if max_trys == 0 then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
554 break; |
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 day = decrementDay(day); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
557 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
558 if max_trys == 0 then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
559 return nil; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
560 else |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
561 return day; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
562 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
563 end |
94
941fd7d8b9b2
mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff
changeset
|
564 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
565 local function parseDay(bareRoomJid, roomSubject, bare_day) |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
566 local ret = ""; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
567 local year; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
568 local month; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
569 local day; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
570 local tmp; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
571 local node, host, resource = splitJid(bareRoomJid); |
583
a634b116c694
mod_muc_log_http: Use YYYY-MM-DD in URLs instead of the confusing YYMMDD.
Waqas Hussain <waqas20@gmail.com>
parents:
582
diff
changeset
|
572 local year, month, day = bare_day:match("^20(%d%d)-(%d%d)-(%d%d)$"); |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
573 local previousDay = findPreviousDay(bareRoomJid, bare_day); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
574 local nextDay = findNextDay(bareRoomJid, bare_day); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
575 local temptime = {day=0, month=0, year=0}; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
576 local path = data_getpath(node, host, datastore); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
577 path = path:gsub("/[^/]*$", ""); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
578 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
|
579 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
580 if tonumber(year) <= 99 then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
581 year = year + 2000; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
582 end |
94
941fd7d8b9b2
mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff
changeset
|
583 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
584 temptime.day = tonumber(day) |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
585 temptime.month = tonumber(month) |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
586 temptime.year = tonumber(year) |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
587 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
|
588 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
589 if bare_day ~= nil then |
583
a634b116c694
mod_muc_log_http: Use YYYY-MM-DD in URLs instead of the confusing YYMMDD.
Waqas Hussain <waqas20@gmail.com>
parents:
582
diff
changeset
|
590 local data = data_load(node, host, datastore .. "/" .. bare_day:match("^20(.*)"):gsub("-", "")); |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
591 if data ~= nil then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
592 for i=1, #data, 1 do |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
593 local stanza = lom.parse(data[i]); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
594 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
|
595 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
|
596 if stanza[1] ~= nil then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
597 local nick; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
598 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
|
599 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
600 -- grep nick from "from" resource |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
601 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
|
602 nick = htmlEscape(stanza[1].attr.from:match("/(.+)$")); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
603 elseif stanza[1].attr.to ~= nil then -- iq |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
604 nick = htmlEscape(stanza[1].attr.to:match("/(.+)$")); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
605 end |
94
941fd7d8b9b2
mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff
changeset
|
606 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
607 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
|
608 tmp = parsePresenceStanza(stanza[1], timeStuff, nick); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
609 elseif stanza[1].tag == "message" then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
610 tmp = parseMessageStanza(stanza[1], timeStuff, nick); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
611 elseif stanza[1].tag == "iq" then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
612 tmp = parseIqStanza(stanza[1], timeStuff, nick); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
613 else |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
614 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
|
615 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
616 if tmp ~= nil then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
617 ret = ret .. tmp |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
618 tmp = nil; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
619 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
620 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
621 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
622 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
623 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
624 if ret ~= "" then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
625 if nextDay then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
626 nextDay = html.day.dayLink:gsub("###DAY###", nextDay):gsub("###TEXT###", ">") |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
627 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
628 if previousDay then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
629 previousDay = html.day.dayLink:gsub("###DAY###", previousDay):gsub("###TEXT###", "<"); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
630 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
631 ret = ret:gsub("%%", "%%%%"); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
632 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
|
633 tmp = tmp:gsub("###CALENDAR###", calendar); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
634 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
|
635 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
|
636 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
|
637 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
|
638 tmp = tmp:gsub("###NEXT_LINK###", nextDay or ""); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
639 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
|
640 |
393
20ef4a289d7d
mod_muc_log_http: Improved page titles a little.
Waqas Hussain <waqas20@gmail.com>
parents:
392
diff
changeset
|
641 return tmp, "Chatroom logs for "..bareRoomJid.." ("..tostring(os_date("%A, %B %d, %Y", os_time(temptime)))..")"; |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
642 end |
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 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
|
645 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
646 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
|
647 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
|
648 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
|
649 if host == "" then host = nil; end |
19469f3ad6d6
mod_muc_log_http: Cleaned up URL parsing.
Waqas Hussain <waqas20@gmail.com>
parents:
381
diff
changeset
|
650 if node == "" then node = nil; end |
19469f3ad6d6
mod_muc_log_http: Cleaned up URL parsing.
Waqas Hussain <waqas20@gmail.com>
parents:
381
diff
changeset
|
651 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
|
652 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
653 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
|
654 |
580
10a9538f41f1
mod_muc_log_http: Return a 500 Internal Server Error on missing theme, not a traceback.
Waqas Hussain <waqas20@gmail.com>
parents:
579
diff
changeset
|
655 if not html.doc then return { status = "500 Internal Server Error", "MUC hosts or theme not loaded" }; end |
384
79983e658bb5
mod_muc_log_http: Cleaned up URL handling.
Waqas Hussain <waqas20@gmail.com>
parents:
383
diff
changeset
|
656 |
390
8090d246c268
mod_muc_log_http: Removed some more code. Module now no longer attempts to track muc_log hosts on its own.
Waqas Hussain <waqas20@gmail.com>
parents:
389
diff
changeset
|
657 if host and not(hosts[host] and hosts[host].modules.muc and hosts[host].modules.muc_log) then return { status = "404 Not found", body = "No such MUC component" }; end |
387
90d0e90c5b0e
mod_muc_log_http: Fixed a typo.
Waqas Hussain <waqas20@gmail.com>
parents:
386
diff
changeset
|
658 if host and node and not(hosts[host].modules.muc.rooms[node.."@"..host]) then return { status = "404 Not found", body = "No such MUC room" }; end |
384
79983e658bb5
mod_muc_log_http: Cleaned up URL handling.
Waqas Hussain <waqas20@gmail.com>
parents:
383
diff
changeset
|
659 |
79983e658bb5
mod_muc_log_http: Cleaned up URL handling.
Waqas Hussain <waqas20@gmail.com>
parents:
383
diff
changeset
|
660 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
|
661 return createDoc(generateComponentListSiteContent()); |
79983e658bb5
mod_muc_log_http: Cleaned up URL handling.
Waqas Hussain <waqas20@gmail.com>
parents:
383
diff
changeset
|
662 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
|
663 return createDoc(generateRoomListSiteContent(host)); |
79983e658bb5
mod_muc_log_http: Cleaned up URL handling.
Waqas Hussain <waqas20@gmail.com>
parents:
383
diff
changeset
|
664 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
|
665 return createDoc(generateDayListSiteContentByRoom(node.."@"..host)); |
79983e658bb5
mod_muc_log_http: Cleaned up URL handling.
Waqas Hussain <waqas20@gmail.com>
parents:
383
diff
changeset
|
666 else |
583
a634b116c694
mod_muc_log_http: Use YYYY-MM-DD in URLs instead of the confusing YYMMDD.
Waqas Hussain <waqas20@gmail.com>
parents:
582
diff
changeset
|
667 if not day:match("^20(%d%d)-(%d%d)-(%d%d)$") then |
a634b116c694
mod_muc_log_http: Use YYYY-MM-DD in URLs instead of the confusing YYMMDD.
Waqas Hussain <waqas20@gmail.com>
parents:
582
diff
changeset
|
668 local y,m,d = day:match("^(%d%d)(%d%d)(%d%d)$"); |
a634b116c694
mod_muc_log_http: Use YYYY-MM-DD in URLs instead of the confusing YYMMDD.
Waqas Hussain <waqas20@gmail.com>
parents:
582
diff
changeset
|
669 if not y then |
a634b116c694
mod_muc_log_http: Use YYYY-MM-DD in URLs instead of the confusing YYMMDD.
Waqas Hussain <waqas20@gmail.com>
parents:
582
diff
changeset
|
670 return { status = "404 Not found", body = "Unknown URL" }; |
a634b116c694
mod_muc_log_http: Use YYYY-MM-DD in URLs instead of the confusing YYMMDD.
Waqas Hussain <waqas20@gmail.com>
parents:
582
diff
changeset
|
671 end |
a634b116c694
mod_muc_log_http: Use YYYY-MM-DD in URLs instead of the confusing YYMMDD.
Waqas Hussain <waqas20@gmail.com>
parents:
582
diff
changeset
|
672 return { status = "301 Moved Permanently", |
a634b116c694
mod_muc_log_http: Use YYYY-MM-DD in URLs instead of the confusing YYMMDD.
Waqas Hussain <waqas20@gmail.com>
parents:
582
diff
changeset
|
673 headers = { ["Location"] = request.url.path:match("^/muc_log/+[^/]*/*[^/]*").."/20"..y.."-"..m.."-"..d.."/" } }; |
a634b116c694
mod_muc_log_http: Use YYYY-MM-DD in URLs instead of the confusing YYMMDD.
Waqas Hussain <waqas20@gmail.com>
parents:
582
diff
changeset
|
674 end |
389
60248c463ec3
mod_muc_log_http: Fixed a typo.
Waqas Hussain <waqas20@gmail.com>
parents:
388
diff
changeset
|
675 local room = hosts[host].modules.muc.rooms[node.."@"..host]; |
583
a634b116c694
mod_muc_log_http: Use YYYY-MM-DD in URLs instead of the confusing YYMMDD.
Waqas Hussain <waqas20@gmail.com>
parents:
582
diff
changeset
|
676 return createDoc(parseDay(node.."@"..host, room._data.subject or "", day)); |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
677 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
678 end |
94
941fd7d8b9b2
mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff
changeset
|
679 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
680 local function readFile(filepath) |
581
a9a97df60b8c
mod_muc_log_http: Improved theme loading, and better error reporting.
Waqas Hussain <waqas20@gmail.com>
parents:
580
diff
changeset
|
681 local f,err = io_open(filepath, "r"); |
a9a97df60b8c
mod_muc_log_http: Improved theme loading, and better error reporting.
Waqas Hussain <waqas20@gmail.com>
parents:
580
diff
changeset
|
682 if not f then return f,err; end |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
683 local t = f:read("*all"); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
684 f:close() |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
685 return t; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
686 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
|
687 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
688 local function loadTheme(path) |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
689 for file in lfs.dir(path) do |
581
a9a97df60b8c
mod_muc_log_http: Improved theme loading, and better error reporting.
Waqas Hussain <waqas20@gmail.com>
parents:
580
diff
changeset
|
690 if file:match("%.html$") then |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
691 module:log("debug", "opening theme file: " .. file); |
581
a9a97df60b8c
mod_muc_log_http: Improved theme loading, and better error reporting.
Waqas Hussain <waqas20@gmail.com>
parents:
580
diff
changeset
|
692 local content,err = readFile(path .. "/" .. file); |
a9a97df60b8c
mod_muc_log_http: Improved theme loading, and better error reporting.
Waqas Hussain <waqas20@gmail.com>
parents:
580
diff
changeset
|
693 if not content then return content,err; end |
582
92ff305e7e32
mod_muc_log_http: Reduce theme loading code.
Waqas Hussain <waqas20@gmail.com>
parents:
581
diff
changeset
|
694 |
92ff305e7e32
mod_muc_log_http: Reduce theme loading code.
Waqas Hussain <waqas20@gmail.com>
parents:
581
diff
changeset
|
695 -- html.a.b.c = content of a_b_c.html |
92ff305e7e32
mod_muc_log_http: Reduce theme loading code.
Waqas Hussain <waqas20@gmail.com>
parents:
581
diff
changeset
|
696 local tmp = html; |
92ff305e7e32
mod_muc_log_http: Reduce theme loading code.
Waqas Hussain <waqas20@gmail.com>
parents:
581
diff
changeset
|
697 for idx in file:gmatch("([^_]*)_") do |
92ff305e7e32
mod_muc_log_http: Reduce theme loading code.
Waqas Hussain <waqas20@gmail.com>
parents:
581
diff
changeset
|
698 tmp[idx] = tmp[idx] or {}; |
92ff305e7e32
mod_muc_log_http: Reduce theme loading code.
Waqas Hussain <waqas20@gmail.com>
parents:
581
diff
changeset
|
699 tmp = tmp[idx]; |
92ff305e7e32
mod_muc_log_http: Reduce theme loading code.
Waqas Hussain <waqas20@gmail.com>
parents:
581
diff
changeset
|
700 end |
92ff305e7e32
mod_muc_log_http: Reduce theme loading code.
Waqas Hussain <waqas20@gmail.com>
parents:
581
diff
changeset
|
701 tmp[file:match("([^_]*)%.html$")] = content; |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
702 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
703 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
704 return true; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
705 end |
348
03e1dc036a28
mod_muc_log_http: HTML overhaul. Replacing deprecated elements and style-attributes.
Florian Zeitz <florob@babelmonkeys.de>
parents:
344
diff
changeset
|
706 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
707 function module.load() |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
708 config = config_get("*", "core", "muc_log_http") or {}; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
709 if config.showStatus == nil then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
710 config.showStatus = true; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
711 end |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
712 if config.showJoin == nil then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
713 config.showJoin = true; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
714 end |
94
941fd7d8b9b2
mod_muc_log: split into mod_muc_log and mod_muc_log_http
Thilo Cestonaro <thilo@cestona.ro>
parents:
diff
changeset
|
715 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
716 theme = config.theme or "prosody"; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
717 local themePath = themesParent .. "/" .. tostring(theme); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
718 local attributes, err = lfs.attributes(themePath); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
719 if attributes == nil or attributes.mode ~= "directory" then |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
720 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
|
721 return false; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
722 end |
105
cef943f0a551
mod_muc_log_http: themified ...
Thilo Cestonaro <thilo@cestona.ro>
parents:
104
diff
changeset
|
723 |
581
a9a97df60b8c
mod_muc_log_http: Improved theme loading, and better error reporting.
Waqas Hussain <waqas20@gmail.com>
parents:
580
diff
changeset
|
724 local themeLoaded,err = loadTheme(themePath); |
a9a97df60b8c
mod_muc_log_http: Improved theme loading, and better error reporting.
Waqas Hussain <waqas20@gmail.com>
parents:
580
diff
changeset
|
725 if not themeLoaded then |
a9a97df60b8c
mod_muc_log_http: Improved theme loading, and better error reporting.
Waqas Hussain <waqas20@gmail.com>
parents:
580
diff
changeset
|
726 module:log("error", "Theme \"%s\" is missing something: %s", tostring(theme), err); |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
727 return false; |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
728 end |
105
cef943f0a551
mod_muc_log_http: themified ...
Thilo Cestonaro <thilo@cestona.ro>
parents:
104
diff
changeset
|
729 |
380
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
730 httpserver.new_from_config({ config.http_port or true }, handle_request, { base = urlBase, ssl = false, port = 5290 }); |
5ef71af77ae2
mod_muc_log_http: Spaces -> Tabs.
Waqas Hussain <waqas20@gmail.com>
parents:
348
diff
changeset
|
731 end |