7a27ae814f
Co-authored-by: bubz_ <bubz_dummy@gmail.com>
111 lines
4.8 KiB
Plaintext
111 lines
4.8 KiB
Plaintext
@page "/status"
|
|
@using SPTarkov.Server.Core.Helpers
|
|
@using SPTarkov.Server.Core.Models.Spt.Config
|
|
@using SPTarkov.Server.Core.Servers
|
|
@using SPTarkov.Server.Core.Services
|
|
@using SPTarkov.Server.Core.Utils
|
|
@using SPTarkov.Server.Web.Components.Layout
|
|
|
|
@inject ConfigServer ConfigServer
|
|
@inject TimeUtil TimeUtil
|
|
@inject ProfileActivityService ProfileActivityService
|
|
@inject ProfileHelper ProfileHelper
|
|
|
|
@layout BaseMudBlazorLayout
|
|
|
|
<HeadContent>
|
|
<link href="@Assets["_content/MudBlazor/MudBlazor.min.css"]" rel="stylesheet" />
|
|
<meta name="robots" content="noindex, nofollow">
|
|
<link href="https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet">
|
|
</HeadContent>
|
|
<MudThemeProvider Theme="@_theme" IsDarkMode="true" />
|
|
|
|
<MudContainer Class="mt-16 d-flex justify-center">
|
|
<MudGrid Justify="Justify.Center">
|
|
<MudItem xs="12" sm="6" md="4">
|
|
<MudCard Elevation="25" Class="rounded-lg pb-4">
|
|
<MudCardHeader>
|
|
<CardHeaderContent>
|
|
<MudText Typo="Typo.h4" Color="Color.Warning" Align="Align.Center">Server health</MudText>
|
|
</CardHeaderContent>
|
|
</MudCardHeader>
|
|
<MudCardContent>
|
|
<MudList T="string" Class="mx-auto mt-4">
|
|
<MudListItem Icon="@Icons.Material.Filled.Circle" IconColor="Color.Warning">SPT Version: @_sptVersion</MudListItem>
|
|
<MudListItem Icon="@Icons.Material.Filled.Circle" IconColor="Color.Warning">Mods @(_modsEnabled ? "ENABLED" : "DISABLED")</MudListItem>
|
|
<MudListItem Icon="@Icons.Material.Filled.Circle" IconColor="Color.Warning">Debug @(_debugEnabled ? "ENABLED" : "DISABLED")</MudListItem>
|
|
<MudListItem Icon="@Icons.Material.Filled.Circle" IconColor="Color.Warning">Time started: @_startTime</MudListItem>
|
|
<MudListItem Icon="@Icons.Material.Filled.Circle" IconColor="Color.Warning">Uptime: @_uptimeSeconds seconds</MudListItem>
|
|
<MudListItem Icon="@Icons.Material.Filled.Circle" IconColor="Color.Warning">Total profile count: @_totalProfileCount</MudListItem>
|
|
<MudListItem Icon="@Icons.Material.Filled.Inbox" IconColor="Color.Warning" Text="Profiles active last 30 minutes:" Expanded>
|
|
<NestedList>
|
|
@foreach (var profile in _activeProfiles)
|
|
{
|
|
<MudListItem Icon="@Icons.Material.Filled.Circle" IconColor="Color.Warning">
|
|
@profile
|
|
</MudListItem>
|
|
}
|
|
</NestedList>
|
|
</MudListItem>
|
|
</MudList>
|
|
</MudCardContent>
|
|
</MudCard>
|
|
</MudItem>
|
|
</MudGrid>
|
|
</MudContainer>
|
|
|
|
@code
|
|
{
|
|
private string _sptVersion = string.Empty;
|
|
private bool _debugEnabled = false;
|
|
private bool _modsEnabled = false;
|
|
private DateTime _startTime = DateTime.Now;
|
|
private long _uptimeSeconds = 0;
|
|
private readonly List<string> _activeProfiles = [];
|
|
private int _totalProfileCount = 0;
|
|
|
|
protected override void OnInitialized()
|
|
{
|
|
base.OnInitialized();
|
|
|
|
var coreConfig = ConfigServer.GetConfig<CoreConfig>();
|
|
|
|
_sptVersion = ProgramStatics.SPT_VERSION().ToString();
|
|
_debugEnabled = ProgramStatics.DEBUG();
|
|
_modsEnabled = ProgramStatics.MODS();
|
|
_startTime = TimeUtil.GetDateTimeFromTimeStamp(coreConfig.ServerStartTime.Value).ToLocalTime();
|
|
_uptimeSeconds = DateTimeOffset.Now.ToUnixTimeSeconds() - coreConfig.ServerStartTime.Value;
|
|
|
|
var activeProfileIds = ProfileActivityService.GetActiveProfileIdsWithinMinutes(30);
|
|
if (activeProfileIds.Count == 0)
|
|
{
|
|
_activeProfiles.Add("None");
|
|
}
|
|
else
|
|
{
|
|
foreach (var activeProfileId in activeProfileIds)
|
|
{
|
|
_activeProfiles.Add($"{activeProfileId} ({ProfileHelper.GetPmcProfile(activeProfileId).Info.Nickname})");
|
|
}
|
|
}
|
|
|
|
_totalProfileCount = ProfileHelper.GetProfiles().Count;
|
|
}
|
|
|
|
private readonly MudTheme _theme = new()
|
|
{
|
|
PaletteDark = new PaletteDark
|
|
{
|
|
Primary = Colors.Blue.Default,
|
|
Secondary = Colors.Orange.Default,
|
|
Warning = Colors.Amber.Default,
|
|
Info = Colors.Blue.Lighten1,
|
|
Success = Colors.Green.Default,
|
|
Background = "rgba(0,0,0,0.9)",
|
|
Surface = "rgba(255,255,255,0.05)",
|
|
AppbarBackground = "rgba(0,0,0,0.8)",
|
|
TextPrimary = "#FFFFFF"
|
|
}
|
|
};
|
|
}
|