Only add new messages.

This commit is contained in:
Filip Strajnar 2024-06-16 01:26:20 +02:00
parent 0ca1d86126
commit b4f0ce3de1

View file

@ -65,14 +65,18 @@ int finalCode = await CommandLine
if (messages is null) if (messages is null)
return 2; return 2;
await db.AddRangeAsync( IEnumerable<Message> newMessages = messages.Select(message => new Message
messages.Select(message => new Message
{ {
ChannelId = message.ChannelId, ChannelId = message.ChannelId,
MessageId = message.Id, MessageId = message.Id,
Content = message.Content Content = message.Content
}) });
);
foreach (var newMessage in newMessages)
{
if (!db.Messages.Any(message => message.MessageId == newMessage.MessageId))
await db.AddAsync(newMessage);
}
await db.SaveChangesAsync(); await db.SaveChangesAsync();
Console.WriteLine($"Written {messages.Length} messages."); Console.WriteLine($"Written {messages.Length} messages.");
@ -96,17 +100,21 @@ int finalCode = await CommandLine
totalMessages = response.TotalMessages; totalMessages = response.TotalMessages;
await db.AddRangeAsync( IEnumerable<Message> newMessages = response.Messages.SelectMany(message =>
response.Messages.SelectMany(message =>
message.Select(messagePart => new Message message.Select(messagePart => new Message
{ {
ChannelId = messagePart.ChannelId, ChannelId = messagePart.ChannelId,
MessageId = messagePart.Id, MessageId = messagePart.Id,
Content = messagePart.Content Content = messagePart.Content
}) })
)
); );
foreach (var newMessage in newMessages)
{
if (!db.Messages.Any(message => message.MessageId == newMessage.MessageId))
await db.AddAsync(newMessage);
}
await db.SaveChangesAsync(); await db.SaveChangesAsync();
Console.WriteLine($"Written {response.Messages.Length} messages."); Console.WriteLine($"Written {response.Messages.Length} messages.");
offset += response.Messages.Count(); offset += response.Messages.Count();