Added external repo support

This commit is contained in:
2024-10-22 21:30:26 +03:00
parent f108a1fe08
commit 8a2212e47f
11 changed files with 224 additions and 141 deletions

View File

@@ -9,6 +9,7 @@ using DiscordBotCore.Loaders;
using DiscordBotCore.Online;
using DiscordBotCore.Others;
using DiscordBotCore.Others.Exceptions;
using DiscordBotCore.Repository;
using Newtonsoft.Json;
namespace DiscordBotCore.Modules
@@ -30,8 +31,8 @@ namespace DiscordBotCore.Modules
private static readonly string _BaseModuleFolder = "./Data/Modules";
private static readonly string _BaseModuleConfig = "./Data/Resources/modules.json";
private const string _ModuleDatabase = "https://raw.githubusercontent.com/andreitdr/SethPlugins/tests/modules.json";
// private const string _ModuleDatabase = "https://raw.githubusercontent.com/andreitdr/SethPlugins/tests/modules.json";
private ModuleRepository _ModuleRepository;
private List<LoadedModule> Modules { get; }
public IEnumerable<ModuleData> GetLocalModules()
@@ -39,10 +40,11 @@ namespace DiscordBotCore.Modules
return Modules.Select(module => module.ModuleData);
}
internal ModuleManager()
internal ModuleManager(ModuleRepository moduleRepository)
{
Application.CurrentApplication.ApplicationEnvironmentVariables.Get<string>("ModuleFolder", _BaseModuleFolder);
Modules = new();
_ModuleRepository = moduleRepository;
}
public async Task<ModuleOnlineData?> ServerGetModuleWithName(string moduleName)
@@ -53,7 +55,7 @@ namespace DiscordBotCore.Modules
public async Task<List<ModuleOnlineData>> ServerGetAllModules(ModuleType? moduleTypeFilter = null)
{
string jsonDatabaseRemote = await ServerCom.GetAllTextFromUrl(_ModuleDatabase);
var jsonDatabaseRemote = await _ModuleRepository.JsonGetAllModules();
var modules = await JsonManager.ConvertFromJson<List<ModuleOnlineData>>(jsonDatabaseRemote);