106 lines
3.0 KiB
C#
106 lines
3.0 KiB
C#
|
using System.Net;
|
||
|
using Newtonsoft.Json;
|
||
|
using Tesses.WebServer;
|
||
|
using Chatr;
|
||
|
using System.Collections.Generic;
|
||
|
namespace Tesses.Chatr.Server
|
||
|
{
|
||
|
public class UserOptions
|
||
|
{
|
||
|
|
||
|
Account a;
|
||
|
|
||
|
public List<UserAccount> Users {get;set;}
|
||
|
|
||
|
public List<UserAccount> Bots {get;set;}
|
||
|
|
||
|
public string Hidebotschecked {get {return a.ShowBots ? "" : "checked"; } set {a.ShowBots=value != "checked";}}
|
||
|
|
||
|
public string Showuserchecked {get {return a.ShowUserNameToAnyBody ? "checked" : "";} set{a.ShowUserNameToAnyBody=value=="checked";}}
|
||
|
|
||
|
public UserOptions(Account account)
|
||
|
{
|
||
|
Users=new List<UserAccount>();
|
||
|
Bots=new List<UserAccount>();
|
||
|
a=account;
|
||
|
|
||
|
foreach(var user in UserManagement.GetUserWithMe(account,false))
|
||
|
{
|
||
|
UserAccount usr=new UserAccount();
|
||
|
usr.Hash = user.Username;
|
||
|
usr.Text = WebUtility.HtmlEncode(user.Name);
|
||
|
usr.UId=user.Id;
|
||
|
usr.Shown = account.HiddenUsers.Contains(user.Id) ? "" : "checked";
|
||
|
foreach(var bot in UserManagement.GetBotsWithMe(account,user,false))
|
||
|
{
|
||
|
UserAccount usr1=new UserAccount();
|
||
|
usr1.Hash=$"{user.Username}={bot.BotUserName}";
|
||
|
usr1.Text = WebUtility.HtmlEncode($"{bot.BotName} ({bot.BotUserName}'s Bot)");
|
||
|
usr1.UId = bot.Id;
|
||
|
usr1.Shown = account.HiddenBots.Contains(bot.Id) ? "" : "checked";
|
||
|
Bots.Add(usr1);
|
||
|
}
|
||
|
Users.Add(usr);
|
||
|
}
|
||
|
}
|
||
|
public void Set(ServerContext ctx,bool save=true)
|
||
|
{
|
||
|
string res;
|
||
|
if(ctx.QueryParams.TryGetFirst("hide_bots",out res))
|
||
|
{
|
||
|
Hidebotschecked=res=="on" ? "checked" : "";
|
||
|
}
|
||
|
if(ctx.QueryParams.TryGetFirst("show_user",out res))
|
||
|
{
|
||
|
Showuserchecked=res=="on" ? "checked" : "";
|
||
|
}
|
||
|
foreach(var user in Users)
|
||
|
{
|
||
|
//user
|
||
|
user.Shown="";
|
||
|
|
||
|
if(ctx.QueryParams.TryGetFirst($"user{user.Hash}",out res))
|
||
|
{
|
||
|
user.Shown = res == "on" ? "checked" : "";
|
||
|
}
|
||
|
}
|
||
|
foreach(var bot in Bots)
|
||
|
{
|
||
|
bot.Shown="";
|
||
|
|
||
|
if(ctx.QueryParams.TryGetFirst($"bot{bot.Hash}",out res))
|
||
|
{
|
||
|
bot.Shown = res == "on" ? "checked" : "";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if(save)
|
||
|
{
|
||
|
Save();
|
||
|
}
|
||
|
}
|
||
|
public void Save()
|
||
|
{
|
||
|
a.HiddenUsers.Clear();
|
||
|
a.HiddenBots.Clear();
|
||
|
//only do users and bots
|
||
|
//the other bools are already set
|
||
|
foreach(var user in Users)
|
||
|
{
|
||
|
if(user.Shown == "")
|
||
|
{
|
||
|
a.HiddenUsers.Add(user.UId);
|
||
|
}
|
||
|
}
|
||
|
foreach(var bot in Users)
|
||
|
{
|
||
|
if(bot.Shown == "")
|
||
|
{
|
||
|
a.HiddenBots.Add(bot.UId);
|
||
|
}
|
||
|
}
|
||
|
if(DataBase.Accounts != null)
|
||
|
DataBase.Accounts.Update(a);
|
||
|
}
|
||
|
}
|
||
|
}
|