/* Starshatter: The Open Source Project Copyright (c) 2021-2024, Starshatter: The Open Source Project Contributors Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors Copyright (c) 1997-2006, Destroyer Studios LLC. AUTHOR: John DiCamillo OVERVIEW ======== HTTP Servlet Engine for Admin Chat */ #include "NetAdminChat.h" #include #include #include #include #include #include #include #include #include #include #include #include // +-------------------------------------------------------------------+ NetAdminChat::NetAdminChat() {} NetAdminChat::~NetAdminChat() {} // +-------------------------------------------------------------------+ bool NetAdminChat::DoGet(HttpRequest& request, HttpResponse& response) { if (CheckUser(request, response)) { NetLobbyServer* lobby = NetLobbyServer::GetInstance(); if (lobby) { Text msg = request.GetParam("msg"); Text act = request.GetParam("action"); if (msg.length()) { lobby->AddChat(user, msg); if (user) NetUtil::SendChat(0xffff, user->Name(), msg); } else if (act.length()) { if (act == "clear") lobby->ClearChat(); else if (act == "save") lobby->SaveChat(); } } response.SetStatus(HttpResponse::SC_OK); response.AddHeader("MIME-Version", "1.0"); response.AddHeader("Content-Type", "text/html"); response.AddHeader("Cache-Control", "no-cache"); response.AddHeader("Expires", "-1"); response.SetContent(GetHead("Chat") + GetTitleBar(GetStatLine(), "onLoad=\"self.focus();document.chatForm.msg.focus();\"") + GetContent() + GetBodyClose()); } return true; } // +-------------------------------------------------------------------+ Text NetAdminChat::GetContent() { Text content = "
\n"; int nchat = 0; NetLobbyServer* lobby = NetLobbyServer::GetInstance(); if (lobby) { content += "\n\n"; ListIter iter = lobby->GetChat(); while (++iter) { NetChatEntry* c = iter.value(); content += " \n"; } content += "
"; content += FormatTimeString(c->GetTime()); content += ""; content += c->GetUser(); content += ""; content += c->GetMessage(); content += "
\n\n"; } content += "
\n
\n\
\n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\
    
  Refresh\   ·  Save  ·  Clear
\n\
\n\
\n\n"; content += GetCopyright(); return content; }