mirror of
https://onedev.fprog.nl/DiscordClient
synced 2025-12-29 10:18:36 +01:00
Refactoring scan code.
This commit is contained in:
parent
82fe3813a6
commit
c99b9d2714
|
|
@ -70,82 +70,43 @@ int finalCode = await CommandLine
|
|||
int totalMessages = 1;
|
||||
int offset = 0;
|
||||
|
||||
if (opt.GuildId is null)
|
||||
while (offset < totalMessages)
|
||||
{
|
||||
Console.WriteLine("Scanning DM messages.");
|
||||
while (true)
|
||||
{
|
||||
// Scanning direct messages.
|
||||
var response = await client.GetChannelMessages(
|
||||
opt.ChannelId,
|
||||
offset,
|
||||
opt.Author
|
||||
);
|
||||
var searchResponse = opt.GuildId is null
|
||||
? await client.GetChannelMessages(opt.ChannelId, offset, opt.Author)
|
||||
: await client.SearchGuildMessages(opt.GuildId, offset, opt.Author);
|
||||
|
||||
if (response.JsonData is null)
|
||||
return 2;
|
||||
Console.WriteLine(
|
||||
$"Scan code at offset {offset}: {searchResponse.Response.StatusCode}."
|
||||
);
|
||||
|
||||
IEnumerable<Message> newMessages = response.JsonData.Select(
|
||||
message => new Message
|
||||
if (searchResponse.JsonData is null)
|
||||
return 2;
|
||||
|
||||
totalMessages = searchResponse.JsonData.TotalMessages;
|
||||
|
||||
IEnumerable<Message> newMessages = searchResponse.JsonData.Messages.SelectMany(
|
||||
message =>
|
||||
message.Select(messagePart => new Message
|
||||
{
|
||||
ChannelId = message.ChannelId,
|
||||
MessageId = message.Id,
|
||||
Content = message.Content
|
||||
}
|
||||
);
|
||||
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.JsonData.Length} messages.");
|
||||
offset += 50;
|
||||
|
||||
await Task.Delay(TimeSpan.FromSeconds(2));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("Scanning guild messages.");
|
||||
while (offset < totalMessages)
|
||||
foreach (var newMessage in newMessages)
|
||||
{
|
||||
// Scanning guild messages.
|
||||
var response = await client.SearchGuildMessages(
|
||||
opt.GuildId,
|
||||
offset,
|
||||
opt.Author
|
||||
);
|
||||
|
||||
if (response.JsonData is null || response.JsonData.Messages is null)
|
||||
return 3;
|
||||
|
||||
totalMessages = response.JsonData.TotalMessages;
|
||||
|
||||
IEnumerable<Message> newMessages = response.JsonData.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.JsonData.Messages.Length} messages.");
|
||||
offset += response.JsonData.Messages.Length;
|
||||
|
||||
await Task.Delay(TimeSpan.FromSeconds(2));
|
||||
if (!db.Messages.Any(message => message.MessageId == newMessage.MessageId))
|
||||
await db.AddAsync(newMessage);
|
||||
}
|
||||
|
||||
await db.SaveChangesAsync();
|
||||
offset += searchResponse.JsonData.Messages.Length;
|
||||
Console.WriteLine(
|
||||
$"Written {searchResponse.JsonData.Messages.Length} messages. {offset} / {totalMessages}"
|
||||
);
|
||||
await Task.Delay(TimeSpan.FromSeconds(2));
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Reference in a new issue