nerfed prune speed a bit to hopefully prevent ratelimits?
This commit is contained in:
parent
abd2937708
commit
808dca8ec4
@ -12,7 +12,7 @@ namespace NadekoBot.Services.Administration
|
|||||||
public class PruneService
|
public class PruneService
|
||||||
{
|
{
|
||||||
//channelids where prunes are currently occuring
|
//channelids where prunes are currently occuring
|
||||||
private ConcurrentHashSet<ulong> _pruningChannels = new ConcurrentHashSet<ulong>();
|
private ConcurrentHashSet<ulong> _pruningGuilds = new ConcurrentHashSet<ulong>();
|
||||||
private readonly TimeSpan twoWeeks = TimeSpan.FromDays(14);
|
private readonly TimeSpan twoWeeks = TimeSpan.FromDays(14);
|
||||||
|
|
||||||
public async Task PruneWhere(ITextChannel channel, int amount, Func<IMessage, bool> predicate)
|
public async Task PruneWhere(ITextChannel channel, int amount, Func<IMessage, bool> predicate)
|
||||||
@ -21,14 +21,14 @@ namespace NadekoBot.Services.Administration
|
|||||||
if (amount <= 0)
|
if (amount <= 0)
|
||||||
throw new ArgumentOutOfRangeException(nameof(amount));
|
throw new ArgumentOutOfRangeException(nameof(amount));
|
||||||
|
|
||||||
if (!_pruningChannels.Add(channel.Id))
|
if (!_pruningGuilds.Add(channel.GuildId))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
IMessage[] msgs;
|
IMessage[] msgs;
|
||||||
IMessage lastMessage = null;
|
IMessage lastMessage = null;
|
||||||
msgs = (await channel.GetMessagesAsync().Flatten()).Where(predicate).Take(amount).ToArray();
|
msgs = (await channel.GetMessagesAsync(50).Flatten()).Where(predicate).Take(amount).ToArray();
|
||||||
while (amount > 0 && msgs.Any())
|
while (amount > 0 && msgs.Any())
|
||||||
{
|
{
|
||||||
lastMessage = msgs[msgs.Length - 1];
|
lastMessage = msgs[msgs.Length - 1];
|
||||||
@ -52,9 +52,9 @@ namespace NadekoBot.Services.Administration
|
|||||||
|
|
||||||
//this isn't good, because this still work as if i want to remove only specific user's messages from the last
|
//this isn't good, because this still work as if i want to remove only specific user's messages from the last
|
||||||
//100 messages, Maybe this needs to be reduced by msgs.Length instead of 100
|
//100 messages, Maybe this needs to be reduced by msgs.Length instead of 100
|
||||||
amount -= 100;
|
amount -= 50;
|
||||||
if(amount > 0)
|
if(amount > 0)
|
||||||
msgs = (await channel.GetMessagesAsync(lastMessage, Direction.Before).Flatten()).Where(predicate).Take(amount).ToArray();
|
msgs = (await channel.GetMessagesAsync(lastMessage, Direction.Before, 50).Flatten()).Where(predicate).Take(amount).ToArray();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
@ -63,7 +63,7 @@ namespace NadekoBot.Services.Administration
|
|||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
_pruningChannels.TryRemove(channel.Id);
|
_pruningGuilds.TryRemove(channel.GuildId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user