-- chat_history - Channel-based history for Chat System -- (component of Chat System) -- Template attachment: chat_system -- Created by: Patrick Ferland -- Created on: 05/27/2008 -- Revision History -- 05/27/2008 P.Ferland - New script -- 05/30/2008 P.Ferland - Initial release -- 06/02/2008 P.Ferland - Cleanup and documentation -- 06/20/2008 J.McNab - Improved history formatting for web -- Constants -- no constants -- Script properties Define Properties() IncludeScript('11302:12') -- chat_utility end -- Commands -- no commands -- Triggers -- Web Triggers -- View chat channel history WebTrigger chathistory(query_string) local password = query_string.pw local entity_type = query_string.et local entity = query_string.en if (entity_type == nil) then entity_type = 'world' end if (entity == nil) then entity = '' end local channel = chat_system_channel_name(entity_type, entity) local cs = self.chat_system local w = GetWorld() WebResponse(200) WebHeader('Content-type: text/html') WebWrite("\r\n") WebWrite("" .. w.cleanName .. " Chat History \r\n") if (cs.chat_system_history_style == '' or cs.chat_system_history_style == nil) then WebWrite("\r\n") WebWrite("\r\n") else WebWrite("\r\n") end WebWrite("\r\n") if ( (cs.chat_system_history_enabled == 1) and (cs.chat_system_history_web == 1) )then WebWrite("

Chat History

\r\n") if (password == nil) then password = '' end if (channel == nil) then channel = '' end channel_history = self.chat_system.chat_system_history[channel] if (channel_history ~= nil) then if ( (cs.chat_system_history_web_secure ~= 1) or (password == self.chat_system.chat_system_history_web_password) ) then local world_name = string.match(channel, '(.+)#') local place_name = string.match(channel, '#(.+)/') local channel_name = string.match(channel, '/(.+)') if(world_name == nil and place_name == nil and channel_name == nil) then world_name = channel end WebWrite("
\r\n") WebWrite("
\r\n") WebWrite("\t
\r\n") WebWrite("\t\t

Log Info

\r\n") WebWrite("\t\t
\r\n") if(world_name ~= nil) then if(place_name ~= nil and channel_name ~= nil) then WebWrite("\t\t\t
World
\r\n") else WebWrite("\t\t\t
Entity
\r\n") end WebWrite("\t\t\t
" .. world_name .. "
\r\n") end if(place_name ~= nil) then WebWrite("\t\t\t
Place Name
\r\n") WebWrite("\t\t\t
" .. place_name .. "
\r\n") end if(channel_name ~= nil) then WebWrite("\t\t\t
Channel Name
\r\n") WebWrite("\t\t\t
" .. channel_name .. "
\r\n") end WebWrite("\t\t
\r\n") WebWrite("\t\t
\r\n") WebWrite("\t
Log Access Time: " .. os.date("%x %X") .. "
\r\n") WebWrite("\t
\r\n\r\n") WebWrite("\t
\r\n") WebWrite("\t\t

Chat Log

\r\n") WebWrite("\t\t
\r\n") local message = {} for _, message in ipairs(channel_history) do WebWrite("\t\t\t
[" .. message.time .. "] " .. message.msg .. "
\r\n") end WebWrite("\t\t
\r\n") WebWrite("\t\t
\r\n") WebWrite("\t
\r\n") WebWrite("\
\r\n") else WebWrite("

Access denied

") end else WebWrite("

Empty log.

\r\n") end else WebWrite("\t

Chat history is unavailable.

\r\n") end WebEnd() end