IW4M-Admin/Plugins/SimpleStats/Chat/ChatHistoryPage.cs
2017-11-13 15:58:23 -06:00

90 lines
2.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SharedLibrary;
using System.Collections.Specialized;
namespace StatsPlugin.Chat
{
public class ChatPage : HTMLPage
{
public override string GetContent(NameValueCollection querySet, IDictionary<string, string> headers)
{
StringBuilder S = new StringBuilder();
S.Append(LoadHeader());
IFile chat = new IFile("webfront\\chat.html");
S.Append(chat.GetText());
chat.Close();
S.Append(LoadFooter());
return S.ToString();
}
public override string GetName() => "Word Cloud";
public override string GetPath() => "/chat";
}
public class WordCloudJSON : IPage
{
public string GetName() => "Word Cloud JSON";
public string GetPath() => "/_words";
public string GetContentType() => "application/json";
public bool Visible() => false;
public HttpResponse GetPage(NameValueCollection querySet, IDictionary<string, string> headers)
{
HttpResponse resp = new HttpResponse()
{
contentType = GetContentType(),
content = Stats.ChatDB.GetWords().Select(w => new
{
Word = w.Key,
Count = w.Value
})
.OrderByDescending(x => x.Count)
.ToArray(),
additionalHeaders = new Dictionary<string, string>()
};
return resp;
}
}
public class ClientChatJSON : IPage
{
public string GetName() => "Client Chat JSON";
public string GetPath() => "/_clientchat";
public string GetContentType() => "application/json";
public bool Visible() => false;
public HttpResponse GetPage(NameValueCollection querySet, IDictionary<string, string> headers)
{
int clientID = Convert.ToInt32(querySet["clientid"]);
var client = Stats.ManagerInstance.GetClientDatabase().GetPlayer(clientID);
HttpResponse resp = new HttpResponse()
{
contentType = GetContentType(),
content = Stats.ChatDB.GetChatForPlayer(clientID).ToArray().Select(c => new
{
ClientID = c.ClientID,
ServerID = c.ServerID,
Message = c.Message,
TimeSent = c.TimeSent,
ClientName = client.Name,
}),
additionalHeaders = new Dictionary<string, string>()
};
return resp;
}
}
}