fix embed queue
This commit is contained in:
parent
ded4f4db26
commit
8d4a7b1729
13 changed files with 188 additions and 32 deletions
|
|
@ -16,6 +16,7 @@ namespace Catalogger.Backend.Bot.Responders;
|
|||
|
||||
public class MessageCreateResponder(
|
||||
ILogger logger,
|
||||
Config config,
|
||||
DatabaseContext db,
|
||||
MessageRepository messageRepository,
|
||||
UserCacheService userCache,
|
||||
|
|
@ -50,6 +51,12 @@ public class MessageCreateResponder(
|
|||
_ = pkMessageHandler.HandlePkMessageAsync(msg);
|
||||
if (msg.ApplicationID.IsDefined(out var appId) && appId == PkUserId)
|
||||
_ = pkMessageHandler.HandleProxiedMessageAsync(msg.ID.Value);
|
||||
else if (msg.ApplicationID.HasValue && appId == config.Discord.ApplicationId)
|
||||
{
|
||||
db.IgnoredMessages.Add(new IgnoredMessage(msg.ID.Value));
|
||||
await db.SaveChangesAsync(ct);
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
await messageRepository.SaveMessageAsync(msg, ct);
|
||||
return Result.Success;
|
||||
|
|
@ -59,20 +66,20 @@ public class MessageCreateResponder(
|
|||
public partial class PkMessageHandler(ILogger logger, IServiceProvider services)
|
||||
{
|
||||
private readonly ILogger _logger = logger.ForContext<PkMessageHandler>();
|
||||
|
||||
|
||||
[GeneratedRegex(
|
||||
@"^System ID: (\w{5,6}) \| Member ID: (\w{5,6}) \| Sender: .+ \((\d+)\) \| Message ID: (\d+) \| Original Message ID: (\d+)$")]
|
||||
private static partial Regex FooterRegex();
|
||||
|
||||
[GeneratedRegex(@"^https:\/\/discord.com\/channels\/\d+\/(\d+)\/\d+$")]
|
||||
private static partial Regex LinkRegex();
|
||||
|
||||
|
||||
public async Task HandlePkMessageAsync(IMessageCreate msg)
|
||||
{
|
||||
_logger.Debug("Received PluralKit message");
|
||||
|
||||
await Task.Delay(500.Milliseconds());
|
||||
|
||||
|
||||
_logger.Debug("Starting handling PluralKit message");
|
||||
|
||||
// Check if the content matches a Discord link--if not, it's not a log message (we already check if this is a PluralKit message earlier)
|
||||
|
|
@ -122,11 +129,11 @@ public partial class PkMessageHandler(ILogger logger, IServiceProvider services)
|
|||
db.IgnoredMessages.Add(new IgnoredMessage(originalId));
|
||||
await db.SaveChangesAsync();
|
||||
}
|
||||
|
||||
|
||||
public async Task HandleProxiedMessageAsync(ulong msgId)
|
||||
{
|
||||
await Task.Delay(3.Seconds());
|
||||
|
||||
|
||||
await using var scope = services.CreateAsyncScope();
|
||||
await using var db = scope.ServiceProvider.GetRequiredService<DatabaseContext>();
|
||||
var messageRepository = scope.ServiceProvider.GetRequiredService<MessageRepository>();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue