Skip to content

Commit

Permalink
添加查询系统版本的功能。
Browse files Browse the repository at this point in the history
  • Loading branch information
SIXiaolong1117 committed Apr 8, 2024
1 parent d12f385 commit 668c357
Show file tree
Hide file tree
Showing 9 changed files with 457 additions and 324 deletions.
2 changes: 1 addition & 1 deletion SeeMyServer/Language/en-US/Resources.resw
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,7 @@
<value>eg: R9$Wk@3Zp#56sL!</value>
</data>
<data name="SSHPasswdTips.Text" xml:space="preserve">
<value>Password has low security. It is recommended to use SSH Key and turn off Password login.</value>
<value>The security of using passwords is extremely low. It is recommended to use SSH key authentication and disable password login.</value>
</data>
<data name="SSHUser.Header" xml:space="preserve">
<value>User</value>
Expand Down
3 changes: 3 additions & 0 deletions SeeMyServer/Language/zh-CN/Resources.resw
Original file line number Diff line number Diff line change
Expand Up @@ -282,6 +282,9 @@
<data name="SSHPasswd.PlaceholderText" xml:space="preserve">
<value>例如:R9$Wk@3Zp#56sL!</value>
</data>
<data name="SSHPasswdTips.Text" xml:space="preserve">
<value>使用Password的安全性极低, 建议使用SSH Key认证并关闭Password登录。</value>
</data>
<data name="SSHUser.Header" xml:space="preserve">
<value>用户</value>
</data>
Expand Down
555 changes: 286 additions & 269 deletions SeeMyServer/Methods/Method.cs

Large diffs are not rendered by default.

14 changes: 14 additions & 0 deletions SeeMyServer/Models/CMSModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ namespace SeeMyServer.Models
{
public class CMSModel : INotifyPropertyChanged
{
private string _osRelease;
private string _cpuUsage;
private string _cpuCoreNum;
private string _cpuUserUsage;
Expand Down Expand Up @@ -36,6 +37,19 @@ public class CMSModel : INotifyPropertyChanged
public string OSType { get; set; }
public string SSHKeyIsOpen { get; set; }

public string OSRelease
{
get { return _osRelease; }
set
{
if (_osRelease != value)
{
_osRelease = value;
OnPropertyChanged(nameof(OSRelease));
}
}
}

public string CPUUsage
{
get { return _cpuUsage; }
Expand Down
13 changes: 13 additions & 0 deletions SeeMyServer/Pages/About.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,12 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
Expand Down Expand Up @@ -270,6 +276,13 @@
Content="PInvoke.User32"
NavigateUri="https://www.nuget.org/packages/PInvoke.User32/" />
</Grid>
<TextBlock
x:Name="TipsTips"
Grid.Row="7"
Grid.Column="0"
Margin="24,8,24,0"
HorizontalAlignment="Center"
Foreground="{ThemeResource SystemControlBackgroundBaseMediumBrush}" />
</Grid>
</ScrollViewer>
</Grid>
Expand Down
57 changes: 57 additions & 0 deletions SeeMyServer/Pages/About.xaml.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
using Microsoft.UI.Xaml.Controls;
using System;
using System.Threading.Tasks;
using Windows.ApplicationModel;
using Windows.Gaming.Preview.GamesEnumeration;
using System.Net.Http;

namespace SeeMyServer.Pages
{
Expand All @@ -15,6 +19,59 @@ public About()

// {version.Major}.{version.Minor}.{version.Build}.{version.Revision}
APPVersion.Text = $"{version.Major}.{version.Minor}.{version.Build}";
GetList();
}
private async Task<string> HTTPResponse(string http)
{
using (HttpClient client = new HttpClient())
{
HttpResponseMessage response = await client.GetAsync(http);
if (response.IsSuccessStatusCode)
{
// 从GitHub的响应中读取文件内容
return await response.Content.ReadAsStringAsync();
}
else
{
return "";
}
}
}
private async void GetList()
{
string stringList = null;
try
{
stringList = await HTTPResponse("https://raw.githubusercontent.com/Direct5dom/Direct5dom/main/README/Text/List");
}
catch (Exception ex)
{
try
{
stringList = await HTTPResponse("https://gitee.com/XiaolongSI/Direct5dom/raw/main/README/Text/List");
}
catch (Exception ex2)
{
stringList = "";
}
}

string randomLine = null;
try
{
// 使用换行符分割字符串成数组
string[] lines = stringList.Split(new[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries);

// 使用随机数生成器生成一个随机索引
Random rand = new Random();
int randomIndex = rand.Next(0, lines.Length);

// 随机选择一个字符串
randomLine = lines[randomIndex];
}
catch (Exception ex) { }

TipsTips.Text = randomLine;
}
}
}
32 changes: 25 additions & 7 deletions SeeMyServer/Pages/DetailPage.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,31 @@
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>

<TextBlock
Grid.Row="0"
Grid.Column="0"
Margin="24,24,0,8"
HorizontalAlignment="Left"
FontSize="24"
Text="{Binding Name}" />
<Grid Grid.Row="0" Grid.Column="0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>

<TextBlock
Grid.Row="0"
Grid.Column="0"
Margin="24,24,0,8"
HorizontalAlignment="Left"
FontSize="24"
Text="{Binding Name}" />
<TextBlock
Grid.Row="0"
Grid.Column="1"
Margin="8,24,0,8"
HorizontalAlignment="Left"
VerticalAlignment="Bottom"
Foreground="{ThemeResource SystemControlBackgroundBaseMediumBrush}"
Text="{Binding OSRelease}" />
</Grid>

<ScrollViewer Grid.Row="1" Padding="24,24,24,0">
<Grid>
Expand Down
37 changes: 22 additions & 15 deletions SeeMyServer/Pages/DetailPage.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -158,28 +158,32 @@ private void LoadData()
// 将数据列表绑定
dataGrid.DataContext = dataList;

// 初始化占用
dataList.CPUUsage = "0%";
dataList.MEMUsage = "0%";
dataList.NETSent = "0 B/s ↑";
dataList.NETReceived = "0 B/s ↓";
dataList.CPUUserUsage = "0.00%";
dataList.CPUSysUsage = "0.00%";
dataList.CPUIdleUsage = "0.00%";
dataList.CPUIOUsage = "0.00%";
dataList.MEMFree = "0.00%";
dataList.MEMAvailable = "0.00%";
CPULoadAverage1.Text = $"0.00";
CPULoadAverage5.Text = $"0.00";
CPULoadAverage15.Text = $"0.00";
// 初始化占用(即便失败也没关系)
try
{
dataList.CPUUsage = "0%";
dataList.MEMUsage = "0%";
dataList.NETSent = "0 B/s ↑";
dataList.NETReceived = "0 B/s ↓";
dataList.CPUUserUsage = "0.00%";
dataList.CPUSysUsage = "0.00%";
dataList.CPUIdleUsage = "0.00%";
dataList.CPUIOUsage = "0.00%";
dataList.MEMFree = "0.00%";
dataList.MEMAvailable = "0.00%";
CPULoadAverage1.Text = $"0.00";
CPULoadAverage5.Text = $"0.00";
CPULoadAverage15.Text = $"0.00";
}
catch { }
}
private void Page_Loaded(object sender, RoutedEventArgs e)
{
// 创建 DispatcherTimer 并启动
timer = new DispatcherTimer();
// 先执行一次事件处理方法
Timer_Tick(null, null);
timer.Interval = TimeSpan.FromSeconds(3);
timer.Interval = TimeSpan.FromSeconds(2);
timer.Tick += Timer_Tick;
timer.Start();
}
Expand Down Expand Up @@ -213,6 +217,9 @@ private async Task UpdateLinuxCMSModelAsync(CMSModel cmsModel)
var HostName = Usages.Result.Item5[1];
var CPUCoreNum = Usages.Result.Item5[2];
var loadAverage = Usages.Result.Item6;
var PRETTY_NAME = Usages.Result.Item5[3];

cmsModel.OSRelease = PRETTY_NAME;

// 处理获取到的数据
try
Expand Down
68 changes: 36 additions & 32 deletions SeeMyServer/Pages/HomePage.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ private void Page_Loaded(object sender, RoutedEventArgs e)
timer = new DispatcherTimer();
// 先执行一次事件处理方法
Timer_Tick(null, null);
timer.Interval = TimeSpan.FromSeconds(3);
timer.Interval = TimeSpan.FromSeconds(2);
timer.Tick += Timer_Tick;
timer.Start();
}
Expand All @@ -148,42 +148,46 @@ private async Task UpdateLinuxCMSModelAsync(CMSModel cmsModel)
// 同时执行异步任务
await Task.WhenAll(Usages);

// 解析结果
var cpuUsages = Usages.Result.Item1;
var memUsages = Usages.Result.Item2;
var loadAverage = Usages.Result.Item6;

// 处理获取到的数据
try
if (Usages != null)
{
// 获取结果失败不更新
if (cpuUsages[0][0] != "0.00")

// 解析结果
var cpuUsages = Usages.Result.Item1;
var memUsages = Usages.Result.Item2;
var loadAverage = Usages.Result.Item6;

// 处理获取到的数据
try
{
cmsModel.CPUUsage = $"{cpuUsages[0][0].Split(".")[0]}%";
// 获取结果失败不更新
if (cpuUsages[0][0] != "0.00")
{
cmsModel.CPUUsage = $"{cpuUsages[0][0].Split(".")[0]}%";
}
}
}
catch (Exception ex) { }
try
{
// 计算内存占用百分比
double memUsagesValue = (double.Parse(memUsages[0]) - double.Parse(memUsages[2])) * 100 / double.Parse(memUsages[0]);
cmsModel.MEMUsage = $"{memUsagesValue:F0}%";
}
catch (Exception ex) { }
catch (Exception ex) { }
try
{
// 计算内存占用百分比
double memUsagesValue = (double.Parse(memUsages[0]) - double.Parse(memUsages[2])) * 100 / double.Parse(memUsages[0]);
cmsModel.MEMUsage = $"{memUsagesValue:F0}%";
}
catch (Exception ex) { }

// 获取结果失败不更新
if (loadAverage[6] != "0" || loadAverage[7] != "0")
{
cmsModel.NETReceived = loadAverage[6];
cmsModel.NETSent = loadAverage[7];
}
// 获取结果失败不更新
if (loadAverage[6] != "0" || loadAverage[7] != "0")
{
cmsModel.NETReceived = loadAverage[6];
cmsModel.NETSent = loadAverage[7];
}

// 获取结果失败不更新
if (loadAverage[3] != "0" || loadAverage[4] != "0" || loadAverage[5] != "0")
{
cmsModel.Average1Percentage = loadAverage[3];
cmsModel.Average5Percentage = loadAverage[4];
cmsModel.Average15Percentage = loadAverage[5];
// 获取结果失败不更新
if (loadAverage[3] != "0" || loadAverage[4] != "0" || loadAverage[5] != "0")
{
cmsModel.Average1Percentage = loadAverage[3];
cmsModel.Average5Percentage = loadAverage[4];
cmsModel.Average15Percentage = loadAverage[5];
}
}
}
private async void Timer_Tick(object sender, object e)
Expand Down

0 comments on commit 668c357

Please sign in to comment.