feat: add /configure-channels command

This commit is contained in:
sam 2024-08-14 16:05:43 +02:00
parent 110edd34b4
commit 4db09346e2
Signed by: sam
GPG key ID: 5F3C3C1B3166639D
7 changed files with 588 additions and 25 deletions

View file

@ -1,4 +1,7 @@
using OneOf;
using Remora.Discord.API.Abstractions.Objects;
using Remora.Discord.API.Abstractions.Rest;
using Remora.Discord.API.Objects;
using Remora.Rest.Core;
using Remora.Results;
@ -49,5 +52,13 @@ public static class DiscordExtensions
public static async Task<T> GetOrThrow<T>(this Task<Result<T>> result) => (await result).GetOrThrow();
public static async Task<Result> UpdateMessageAsync(this IDiscordRestInteractionAPI interactionApi,
IInteraction interaction, InteractionMessageCallbackData data) =>
await interactionApi.CreateInteractionResponseAsync(interaction.ID,
interaction.Token,
new InteractionResponse(InteractionCallbackType.UpdateMessage,
new Optional<OneOf<IInteractionMessageCallbackData, IInteractionAutocompleteCallbackData,
IInteractionModalCallbackData>>(data)));
public class DiscordRestException(string message) : Exception(message);
}

View file

@ -1,3 +1,4 @@
using Catalogger.Backend.Bot.Commands;
using Catalogger.Backend.Bot.Responders;
using Catalogger.Backend.Cache;
using Catalogger.Backend.Database;
@ -8,6 +9,8 @@ using NodaTime;
using Remora.Discord.API;
using Remora.Discord.API.Abstractions.Rest;
using Remora.Discord.Commands.Services;
using Remora.Discord.Interactivity.Services;
using Remora.Rest.Core;
using Serilog;
using Serilog.Events;
@ -71,7 +74,8 @@ public static class StartupExtensions
.AddScoped<IEncryptionService, EncryptionService>()
.AddScoped<MessageRepository>()
.AddSingleton<WebhookExecutorService>()
.AddSingleton<PkMessageHandler>();
.AddSingleton<PkMessageHandler>()
.AddSingleton(InMemoryDataService<Snowflake, ChannelCommandData>.Instance);
public static async Task Initialize(this WebApplication app)
{