Fixed web rendering issues

This commit is contained in:
2025-04-23 11:55:46 +03:00
parent 2d319f3d34
commit 0493dfaeb4
7 changed files with 99 additions and 43 deletions

View File

@@ -29,17 +29,26 @@ public class PluginRepository : IPluginRepository
{ "includeNotApproved", includeNotApproved.ToString() } { "includeNotApproved", includeNotApproved.ToString() }
}); });
HttpResponseMessage response = await _httpClient.GetAsync(url); try
if (!response.IsSuccessStatusCode)
{ {
HttpResponseMessage response = await _httpClient.GetAsync(url);
if (!response.IsSuccessStatusCode)
{
return [];
}
string content = await response.Content.ReadAsStringAsync();
List<OnlinePlugin> plugins = await JsonManager.ConvertFromJson<List<OnlinePlugin>>(content);
return plugins;
}
catch (HttpRequestException exception)
{
_logger.LogException(exception,this);
return []; return [];
} }
string content = await response.Content.ReadAsStringAsync();
List<OnlinePlugin> plugins = await JsonManager.ConvertFromJson<List<OnlinePlugin>>(content);
return plugins;
} }
public async Task<OnlinePlugin?> GetPluginById(int pluginId) public async Task<OnlinePlugin?> GetPluginById(int pluginId)
@@ -50,17 +59,27 @@ public class PluginRepository : IPluginRepository
{ "pluginId", pluginId.ToString() }, { "pluginId", pluginId.ToString() },
{ "includeNotApproved", "false" } { "includeNotApproved", "false" }
}); });
HttpResponseMessage response = await _httpClient.GetAsync(url);
if (!response.IsSuccessStatusCode) try
{ {
HttpResponseMessage response = await _httpClient.GetAsync(url);
if (!response.IsSuccessStatusCode)
{
return null;
}
string content = await response.Content.ReadAsStringAsync();
OnlinePlugin plugin = await JsonManager.ConvertFromJson<OnlinePlugin>(content);
return plugin;
}
catch (HttpRequestException exception)
{
_logger.LogException(exception, this);
return null; return null;
} }
string content = await response.Content.ReadAsStringAsync();
OnlinePlugin plugin = await JsonManager.ConvertFromJson<OnlinePlugin>(content);
return plugin;
} }
public async Task<OnlinePlugin?> GetPluginByName(string pluginName, int operatingSystem, bool includeNotApproved) public async Task<OnlinePlugin?> GetPluginByName(string pluginName, int operatingSystem, bool includeNotApproved)
@@ -72,18 +91,28 @@ public class PluginRepository : IPluginRepository
{ "operatingSystem", operatingSystem.ToString() }, { "operatingSystem", operatingSystem.ToString() },
{ "includeNotApproved", includeNotApproved.ToString() } { "includeNotApproved", includeNotApproved.ToString() }
}); });
HttpResponseMessage response = await _httpClient.GetAsync(url);
if (!response.IsSuccessStatusCode) try
{ {
_logger.Log($"Plugin {pluginName} not found"); HttpResponseMessage response = await _httpClient.GetAsync(url);
if (!response.IsSuccessStatusCode)
{
_logger.Log($"Plugin {pluginName} not found");
return null;
}
string content = await response.Content.ReadAsStringAsync();
OnlinePlugin plugin = await JsonManager.ConvertFromJson<OnlinePlugin>(content);
return plugin;
}
catch (HttpRequestException exception)
{
_logger.LogException(exception, this);
return null; return null;
} }
string content = await response.Content.ReadAsStringAsync();
OnlinePlugin plugin = await JsonManager.ConvertFromJson<OnlinePlugin>(content);
return plugin;
} }
public async Task<List<OnlineDependencyInfo>> GetDependenciesForPlugin(int pluginId) public async Task<List<OnlineDependencyInfo>> GetDependenciesForPlugin(int pluginId)
@@ -94,17 +123,25 @@ public class PluginRepository : IPluginRepository
{ "pluginId", pluginId.ToString() } { "pluginId", pluginId.ToString() }
}); });
HttpResponseMessage response = await _httpClient.GetAsync(url); try
if(!response.IsSuccessStatusCode)
{ {
_logger.Log($"Failed to get dependencies for plugin with ID {pluginId}"); HttpResponseMessage response = await _httpClient.GetAsync(url);
if(!response.IsSuccessStatusCode)
{
_logger.Log($"Failed to get dependencies for plugin with ID {pluginId}");
return [];
}
string content = await response.Content.ReadAsStringAsync();
List<OnlineDependencyInfo> dependencies = await JsonManager.ConvertFromJson<List<OnlineDependencyInfo>>(content);
return dependencies;
}catch(HttpRequestException exception)
{
_logger.LogException(exception, this);
return []; return [];
} }
string content = await response.Content.ReadAsStringAsync();
List<OnlineDependencyInfo> dependencies = await JsonManager.ConvertFromJson<List<OnlineDependencyInfo>>(content);
return dependencies;
} }
private string CreateUrlWithQueryParams(string baseUrl, string endpoint, Dictionary<string, string> queryParams) private string CreateUrlWithQueryParams(string baseUrl, string endpoint, Dictionary<string, string> queryParams)

View File

@@ -6,6 +6,10 @@
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Hosting" Version="9.0.4" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\DiscordBotCore\DiscordBotCore.csproj" /> <ProjectReference Include="..\DiscordBotCore\DiscordBotCore.csproj" />
</ItemGroup> </ItemGroup>

View File

@@ -1,19 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net8.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<OutputType>Library</OutputType> <OutputType>Library</OutputType>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Discord.Net" Version="3.17.2" /> <PackageReference Include="Discord.Net" Version="3.17.2" />
<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.3" /> <PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.3" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<UpToDateCheckInput Remove="UI\Controls\MessageBox.axaml" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\DiscordBotCore.Configuration\DiscordBotCore.Configuration.csproj" /> <ProjectReference Include="..\DiscordBotCore.Configuration\DiscordBotCore.Configuration.csproj" />
<ProjectReference Include="..\DiscordBotCore.PluginCore\DiscordBotCore.PluginCore.csproj" /> <ProjectReference Include="..\DiscordBotCore.PluginCore\DiscordBotCore.PluginCore.csproj" />

View File

@@ -4,4 +4,16 @@
<h1>Hello, world!</h1> <h1>Hello, world!</h1>
<button type="button" class="btn" @onclick="() => ClickTest(2)">Name</button>
Welcome to your new app. Welcome to your new app.
@code {
private void ClickTest(int i)
{
Console.WriteLine($"Clicked {i}");
}
}

View File

@@ -1,4 +1,6 @@
@page "/plugins/local" @page "/plugins/local"
@rendermode InteractiveServer
@using DiscordBotCore.Logging @using DiscordBotCore.Logging
@using DiscordBotCore.PluginManagement @using DiscordBotCore.PluginManagement
@using DiscordBotCore.PluginManagement.Models @using DiscordBotCore.PluginManagement.Models

View File

@@ -1,9 +1,11 @@
@page "/plugins/online" @page "/plugins/online"
@rendermode InteractiveServer
@using DiscordBotCore.Logging @using DiscordBotCore.Logging
@using DiscordBotCore.PluginManagement @using DiscordBotCore.PluginManagement
<h3>Available Plugins</h3>
<h3>Available Plugins</h3>
@if (_onlinePlugins.Any()) @if (_onlinePlugins.Any())
{ {
<table class="table table-bordered"> <table class="table table-bordered">
@@ -25,7 +27,7 @@
<td>@plugin.Author</td> <td>@plugin.Author</td>
<td>@plugin.Version</td> <td>@plugin.Version</td>
<td> <td>
<button type="button" class="btn btn-primary" @onmousedown="async () => await InstallPlugin(plugin.Id)">Download</button> <button type="button" class="btn" @onclick="async () => await InstallPlugin(plugin.Id)">Download</button>
</td> </td>
</tr> </tr>
} }
@@ -104,6 +106,9 @@ else
}; };
_onlinePlugins.Add(onlinePlugin); _onlinePlugins.Add(onlinePlugin);
} }
Logger.Log($"Found {_onlinePlugins.Count} online plugins.", this);
StateHasChanged();
} }
private async Task InstallPlugin(int pluginId) private async Task InstallPlugin(int pluginId)
@@ -128,6 +133,7 @@ else
Logger.Log($"Plugin {pluginData.Name} installed successfully.", this); Logger.Log($"Plugin {pluginData.Name} installed successfully.", this);
CloseInstallPercentageModal(); CloseInstallPercentageModal();
StateHasChanged();
} }
private void CloseInstallPercentageModal() private void CloseInstallPercentageModal()

View File

@@ -7,6 +7,7 @@ var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRazorComponents() builder.Services.AddRazorComponents()
.AddInteractiveServerComponents(); .AddInteractiveServerComponents();
builder.AddDiscordBotComponents(); builder.AddDiscordBotComponents();
var app = builder.Build(); var app = builder.Build();
// Configure the HTTP request pipeline. // Configure the HTTP request pipeline.