Updated plugin installation and plugin loading

This commit is contained in:
2025-04-06 20:47:00 +03:00
parent 87c889266b
commit 4ab8438a7c
14 changed files with 122 additions and 67 deletions

View File

@@ -1,4 +1,5 @@
using DiscordBotCore.PluginManagement;
using DiscordBotCore.PluginManagement.Models;
using Microsoft.AspNetCore.Mvc;
using WebUI.Models;
using ILogger = DiscordBotCore.Logging.ILogger;
@@ -32,6 +33,7 @@ public class PluginsController : Controller
pluginViewModel.Author = plugin.Author;
pluginViewModel.Version = plugin.Version;
pluginViewModel.DownloadUrl = plugin.DownloadLink;
pluginViewModel.Id = plugin.Id;
pluginViewModels.Add(pluginViewModel);
}
@@ -66,4 +68,22 @@ public class PluginsController : Controller
//TODO: Implement delete plugin
return RedirectToAction("InstalledPlugins");
}
[HttpPost]
public async Task<IActionResult> InstallPlugin(int pluginId)
{
var pluginData = await _pluginManager.GetPluginDataById(pluginId);
if (pluginData is null)
{
_logger.Log($"Plugin with ID {pluginId} not found", this);
return RedirectToAction("OnlinePlugins");
}
IProgress<float> progress = new Progress<float>(f => _logger.Log($"Installing: {f}"));
await _pluginManager.InstallPlugin(pluginData, progress);
_logger.Log($"Plugin {pluginData.Name} installed", this);
return RedirectToAction("OnlinePlugins");
}
}