mirror of
https://onedev.fprog.nl/DiscordClient
synced 2026-03-17 17:24:09 +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 totalMessages = 1;
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
|
|
||||||
if (opt.GuildId is null)
|
while (offset < totalMessages)
|
||||||
{
|
{
|
||||||
Console.WriteLine("Scanning DM messages.");
|
var searchResponse = opt.GuildId is null
|
||||||
while (true)
|
? await client.GetChannelMessages(opt.ChannelId, offset, opt.Author)
|
||||||
{
|
: await client.SearchGuildMessages(opt.GuildId, offset, opt.Author);
|
||||||
// Scanning direct messages.
|
|
||||||
var response = await client.GetChannelMessages(
|
|
||||||
opt.ChannelId,
|
|
||||||
offset,
|
|
||||||
opt.Author
|
|
||||||
);
|
|
||||||
|
|
||||||
if (response.JsonData is null)
|
Console.WriteLine(
|
||||||
return 2;
|
$"Scan code at offset {offset}: {searchResponse.Response.StatusCode}."
|
||||||
|
);
|
||||||
|
|
||||||
IEnumerable<Message> newMessages = response.JsonData.Select(
|
if (searchResponse.JsonData is null)
|
||||||
message => new Message
|
return 2;
|
||||||
|
|
||||||
|
totalMessages = searchResponse.JsonData.TotalMessages;
|
||||||
|
|
||||||
|
IEnumerable<Message> newMessages = searchResponse.JsonData.Messages.SelectMany(
|
||||||
|
message =>
|
||||||
|
message.Select(messagePart => new Message
|
||||||
{
|
{
|
||||||
ChannelId = message.ChannelId,
|
ChannelId = messagePart.ChannelId,
|
||||||
MessageId = message.Id,
|
MessageId = messagePart.Id,
|
||||||
Content = message.Content
|
Content = messagePart.Content
|
||||||
}
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
foreach (var newMessage in newMessages)
|
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)
|
|
||||||
{
|
{
|
||||||
// Scanning guild messages.
|
if (!db.Messages.Any(message => message.MessageId == newMessage.MessageId))
|
||||||
var response = await client.SearchGuildMessages(
|
await db.AddAsync(newMessage);
|
||||||
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));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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;
|
return 0;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue