comparison mod_muc_log_http/mod_muc_log_http.lua @ 102:a10ab09096e2

mod_muc_log_http: double check if muc_hosts is not nil, less logging, config var renamed to http_port back again
author Thilo Cestonaro <thilo@cestona.ro>
date Wed, 02 Dec 2009 22:23:00 +0100
parents e3c09996cf7b
children dc0fe152cadc
comparison
equal deleted inserted replaced
101:e3c09996cf7b 102:a10ab09096e2
1 -- Copyright (C) 2009 Thilo Cestonaro 1 -- Copyright (C) 2009 Thilo Cestonaro
2 -- 2 --
3 -- This project is MIT/X11 licensed. Please see the 3 -- This project is MIT/X11 licensed. Please see the
4 -- COPYING file in the source package for more information. 4 -- COPYING file in the source package for more information.
5 -- 5 --
6
6 local prosody = prosody; 7 local prosody = prosody;
7 local tabSort = table.sort; 8 local tabSort = table.sort;
8 local tonumber = _G.tonumber; 9 local tonumber = _G.tonumber;
9 local tostring = _G.tostring; 10 local tostring = _G.tostring;
10 local strformat = string.format; 11 local strformat = string.format;
12 local config_get = require "core.configmanager".get; 13 local config_get = require "core.configmanager".get;
13 local httpserver = require "net.httpserver"; 14 local httpserver = require "net.httpserver";
14 local datamanager = require "util.datamanager"; 15 local datamanager = require "util.datamanager";
15 local data_load, data_getpath = datamanager.load, datamanager.getpath; 16 local data_load, data_getpath = datamanager.load, datamanager.getpath;
16 local datastore = "muc_log"; 17 local datastore = "muc_log";
18 local urlBase = "muc_log";
17 local muc_hosts = {}; 19 local muc_hosts = {};
18 local config = nil; 20 local config = nil;
19 local tostring = _G.tostring; 21 local tostring = _G.tostring;
20 local tonumber = _G.tonumber; 22 local tonumber = _G.tonumber;
21 local os_date, os_time = os.date, os.time; 23 local os_date, os_time = os.date, os.time;
222 return room, component, day; 224 return room, component, day;
223 end 225 end
224 226
225 local function generateComponentListSiteContent() 227 local function generateComponentListSiteContent()
226 local components = ""; 228 local components = "";
227 for component,muc_host in pairs(muc_hosts) do 229 for component,muc_host in pairs(muc_hosts or {}) do
228 components = components .. html.components.bit:gsub("###COMPONENT###", component); 230 components = components .. html.components.bit:gsub("###COMPONENT###", component);
229 end 231 end
230 if components ~= "" then 232 if components ~= "" then
231 return html.components.body:gsub("###COMPONENTS_STUFF###", components); 233 return html.components.body:gsub("###COMPONENTS_STUFF###", components);
232 end 234 end
384 local room = nil; 386 local room = nil;
385 local attributes = nil; 387 local attributes = nil;
386 388
387 path = path:gsub("/[^/]*$", ""); 389 path = path:gsub("/[^/]*$", "");
388 attributes = lfs.attributes(path); 390 attributes = lfs.attributes(path);
389 if muc_hosts[host] and prosody.hosts[host] ~= nil and prosody.hosts[host].muc ~= nil and prosody.hosts[host].muc.rooms[bareRoomJid] ~= nil then 391 if muc_hosts ~= nil and muc_hosts[host] and prosody.hosts[host] ~= nil and prosody.hosts[host].muc ~= nil and prosody.hosts[host].muc.rooms[bareRoomJid] ~= nil then
390 room = prosody.hosts[host].muc.rooms[bareRoomJid]; 392 room = prosody.hosts[host].muc.rooms[bareRoomJid];
391 if room._data.hidden then 393 if room._data.hidden then
392 room = nil 394 room = nil
393 end 395 end
394 end 396 end
686 end 688 end
687 689
688 function handle_request(method, body, request) 690 function handle_request(method, body, request)
689 local node, host, day = splitUrl(request.url.path); 691 local node, host, day = splitUrl(request.url.path);
690 692
691 if node ~= nil and host ~= nil then 693 if muc_hosts ~= nil then
692 local bare = node .. "@" .. host; 694 if node ~= nil and host ~= nil then
693 if prosody.hosts[host] ~= nil and prosody.hosts[host].muc ~= nil then 695 local bare = node .. "@" .. host;
694 if prosody.hosts[host].muc.rooms[bare] ~= nil then 696 if prosody.hosts[host] ~= nil and prosody.hosts[host].muc ~= nil then
695 local room = prosody.hosts[host].muc.rooms[bare]; 697 if prosody.hosts[host].muc.rooms[bare] ~= nil then
696 if day == nil then 698 local room = prosody.hosts[host].muc.rooms[bare];
697 return createDoc(generateDayListSiteContentByRoom(bare)); 699 if day == nil then
700 return createDoc(generateDayListSiteContentByRoom(bare));
701 else
702 local subject = ""
703 if room._data ~= nil and room._data.subject ~= nil then
704 subject = room._data.subject;
705 end
706 return createDoc(parseDay(bare, subject, day));
707 end
698 else 708 else
699 local subject = "" 709 return createDoc(generateRoomListSiteContent(host));
700 if room._data ~= nil and room._data.subject ~= nil then
701 subject = room._data.subject;
702 end
703 return createDoc(parseDay(bare, subject, day));
704 end 710 end
705 else 711 else
706 return createDoc(generateRoomListSiteContent(host)); 712 return createDoc(generateComponentListSiteContent());
707 end 713 end
714 elseif host ~= nil then
715 return createDoc(generateRoomListSiteContent(host));
708 else 716 else
709 return createDoc(generateComponentListSiteContent()); 717 return createDoc(generateComponentListSiteContent());
710 end 718 end
711 elseif host ~= nil then
712 return createDoc(generateRoomListSiteContent(host));
713 else
714 return createDoc(generateComponentListSiteContent());
715 end 719 end
716 return; 720 return;
717 end 721 end
718 722
719 function module.load() 723 function module.load()
720 module:log("debug", "loading mod_muc_log_http");
721 config = config_get("*", "core", "muc_log_http") or {}; 724 config = config_get("*", "core", "muc_log_http") or {};
722 if config.showStatus == nil then 725 if config.showStatus == nil then
723 config.showStatus = true; 726 config.showStatus = true;
724 end 727 end
725 if config.showJoin == nil then 728 if config.showJoin == nil then
726 config.showJoin = true; 729 config.showJoin = true;
727 end 730 end
728 module:log("debug", "opening httpserver port: " .. tostring(config.port)); 731
729 httpserver.new_from_config({ config.port or true }, handle_request, { base = "muc_log", ssl = false, port = 5290 }); 732 httpserver.new_from_config({ config.http_port or true }, handle_request, { base = urlBase, ssl = false, port = 5290 });
730 733
731 for jid, host in pairs(prosody.hosts) do 734 for jid, host in pairs(prosody.hosts) do
732 if host.muc then 735 if host.muc then
733 local enabledModules = config_get(jid, "core", "modules_enabled"); 736 local enabledModules = config_get(jid, "core", "modules_enabled");
734 if enabledModules then 737 if enabledModules then
744 end 747 end
745 module:log("debug", "loaded mod_muc_log_http"); 748 module:log("debug", "loaded mod_muc_log_http");
746 end 749 end
747 750
748 function module.unload() 751 function module.unload()
749 module:log("debug", "unloading mod_muc_log_http");
750 muc_hosts = nil; 752 muc_hosts = nil;
751 module:log("debug", "unloaded mod_muc_log_http"); 753 module:log("debug", "unloaded mod_muc_log_http");
752 end 754 end
753 755
754 module:add_event_hook("component-activated", function(component, config) 756 module:add_event_hook("component-activated", function(component, config)