Get guilds from existing redis keys instead of the client

This commit is contained in:
Runebaas 2018-06-02 00:16:32 +02:00
parent 8b5e52c8e0
commit 926a632641
No known key found for this signature in database
GPG key ID: 2677AF508D0300D6
2 changed files with 22 additions and 2 deletions

View file

@ -31,7 +31,27 @@ namespace Geekbot.net.Database
public async Task Migrate()
{
_logger.Information(LogSource.Geekbot, "Starting migration process");
foreach (var guild in _client.Guilds)
var keys = _redis.GetAllKeys().Where(e => e.ToString().EndsWith("Messages"));
var guilds = new List<SocketGuild>();
foreach (var key in keys)
{
try
{
var g = _client.GetGuild(ulong.Parse(key.ToString().Split(':').First()));
Console.WriteLine(g.Name);
guilds.Add(g);
}
catch (Exception e)
{
// ignore
}
}
_logger.Information(LogSource.Geekbot, $"Found {guilds.Count} guilds in redis");
foreach (var guild in guilds)
{
if (guild.MemberCount > 10000)
{

View file

@ -29,7 +29,7 @@ namespace Geekbot.net.Lib.AlmostRedis
public IEnumerable<RedisKey> GetAllKeys()
{
return Connection.GetServer($"{_runParameters.RedisHost}:{_runParameters.RedisPort}", int.Parse(_runParameters.RedisDatabase)).Keys();
return Connection.GetServer($"{_runParameters.RedisHost}:{_runParameters.RedisPort}").Keys(int.Parse(_runParameters.RedisDatabase));
}
}
}