From b4f0ce3de177f3ad6acd31aea4c308d3a81d482a Mon Sep 17 00:00:00 2001 From: Filip Strajnar Date: Sun, 16 Jun 2024 01:26:20 +0200 Subject: [PATCH] Only add new messages. --- DiscordDelete/Program.cs | 42 ++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/DiscordDelete/Program.cs b/DiscordDelete/Program.cs index 16ce18f..25eee80 100644 --- a/DiscordDelete/Program.cs +++ b/DiscordDelete/Program.cs @@ -65,14 +65,18 @@ int finalCode = await CommandLine if (messages is null) return 2; - await db.AddRangeAsync( - messages.Select(message => new Message - { - ChannelId = message.ChannelId, - MessageId = message.Id, - Content = message.Content - }) - ); + IEnumerable newMessages = messages.Select(message => new Message + { + ChannelId = message.ChannelId, + MessageId = message.Id, + Content = message.Content + }); + + foreach (var newMessage in newMessages) + { + if (!db.Messages.Any(message => message.MessageId == newMessage.MessageId)) + await db.AddAsync(newMessage); + } await db.SaveChangesAsync(); Console.WriteLine($"Written {messages.Length} messages."); @@ -96,17 +100,21 @@ int finalCode = await CommandLine totalMessages = response.TotalMessages; - await db.AddRangeAsync( - response.Messages.SelectMany(message => - message.Select(messagePart => new Message - { - ChannelId = messagePart.ChannelId, - MessageId = messagePart.Id, - Content = messagePart.Content - }) - ) + IEnumerable newMessages = response.Messages.SelectMany(message => + message.Select(messagePart => new Message + { + ChannelId = messagePart.ChannelId, + MessageId = messagePart.Id, + Content = messagePart.Content + }) ); + foreach (var newMessage in newMessages) + { + if (!db.Messages.Any(message => message.MessageId == newMessage.MessageId)) + await db.AddAsync(newMessage); + } + await db.SaveChangesAsync(); Console.WriteLine($"Written {response.Messages.Length} messages."); offset += response.Messages.Count();