about summary refs log tree commit diff
path: root/Utilities/LibMatrix.Utilities.Bot/Configuration
diff options
context:
space:
mode:
Diffstat (limited to 'Utilities/LibMatrix.Utilities.Bot/Configuration')
-rw-r--r--Utilities/LibMatrix.Utilities.Bot/Configuration/CommandListenerConfiguration.cs24
-rw-r--r--Utilities/LibMatrix.Utilities.Bot/Configuration/InviteListenerConfiguration.cs20
-rw-r--r--Utilities/LibMatrix.Utilities.Bot/Configuration/LibMatrixBotConfiguration.cs17
3 files changed, 61 insertions, 0 deletions
diff --git a/Utilities/LibMatrix.Utilities.Bot/Configuration/CommandListenerConfiguration.cs b/Utilities/LibMatrix.Utilities.Bot/Configuration/CommandListenerConfiguration.cs
new file mode 100644

index 0000000..e3026cd --- /dev/null +++ b/Utilities/LibMatrix.Utilities.Bot/Configuration/CommandListenerConfiguration.cs
@@ -0,0 +1,24 @@ +using System.Diagnostics.CodeAnalysis; +using LibMatrix.Filters; + +namespace LibMatrix.Utilities.Bot.Configuration; + +[SuppressMessage("ReSharper", "UnusedAutoPropertyAccessor.Global", Justification = "Configuration")] +[SuppressMessage("ReSharper", "ClassNeverInstantiated.Global", Justification = "Configuration")] +public class CommandListenerSyncConfiguration { + // public SyncFilter? Filter { get; set; } + public TimeSpan? MinimumSyncTime { get; set; } + public int? Timeout { get; set; } + public string? Presence { get; set; } + // public bool InitialSyncOnStartup { get; set; } +} + +[SuppressMessage("ReSharper", "UnusedAutoPropertyAccessor.Global", Justification = "Configuration")] +[SuppressMessage("ReSharper", "ClassNeverInstantiated.Global", Justification = "Configuration")] +public class CommandListenerConfiguration { + public CommandListenerSyncConfiguration SyncConfiguration { get; set; } = new(); + + public required List<string> Prefixes { get; set; } + public bool MentionPrefix { get; set; } + public bool SelfCommandsOnly { get; set; } +} \ No newline at end of file diff --git a/Utilities/LibMatrix.Utilities.Bot/Configuration/InviteListenerConfiguration.cs b/Utilities/LibMatrix.Utilities.Bot/Configuration/InviteListenerConfiguration.cs new file mode 100644
index 0000000..7fce400 --- /dev/null +++ b/Utilities/LibMatrix.Utilities.Bot/Configuration/InviteListenerConfiguration.cs
@@ -0,0 +1,20 @@ +using System.Diagnostics.CodeAnalysis; +using LibMatrix.Filters; + +namespace LibMatrix.Utilities.Bot.Configuration; + +[SuppressMessage("ReSharper", "UnusedAutoPropertyAccessor.Global", Justification = "Configuration")] +[SuppressMessage("ReSharper", "ClassNeverInstantiated.Global", Justification = "Configuration")] +public class InviteListenerSyncConfiguration { + public SyncFilter? Filter { get; set; } + public TimeSpan? MinimumSyncTime { get; set; } + public int? Timeout { get; set; } + public string? Presence { get; set; } + public bool InitialSyncOnStartup { get; set; } +} + +[SuppressMessage("ReSharper", "UnusedAutoPropertyAccessor.Global", Justification = "Configuration")] +[SuppressMessage("ReSharper", "ClassNeverInstantiated.Global", Justification = "Configuration")] +public class InviteListenerConfiguration { + public InviteListenerSyncConfiguration SyncConfiguration { get; set; } = new(); +} \ No newline at end of file diff --git a/Utilities/LibMatrix.Utilities.Bot/Configuration/LibMatrixBotConfiguration.cs b/Utilities/LibMatrix.Utilities.Bot/Configuration/LibMatrixBotConfiguration.cs new file mode 100644
index 0000000..cd272e0 --- /dev/null +++ b/Utilities/LibMatrix.Utilities.Bot/Configuration/LibMatrixBotConfiguration.cs
@@ -0,0 +1,17 @@ +using LibMatrix.Utilities.Bot.Configuration; +using Microsoft.Extensions.Configuration; + +namespace LibMatrix.Utilities.Bot; + +public class LibMatrixBotConfiguration { + public LibMatrixBotConfiguration(IConfiguration config) => config.GetRequiredSection("LibMatrixBot").Bind(this); + public string Homeserver { get; set; } + public string? AccessToken { get; set; } + public string? AccessTokenPath { get; set; } + public string? LogRoom { get; set; } + + public string? Presence { get; set; } + + public InviteListenerConfiguration? InviteListener { get; set; } + public CommandListenerConfiguration? CommandListener { get; set; } +} \ No newline at end of file