diff --git a/Geekbot.net/Database/RedisMigration.cs b/Geekbot.net/Database/RedisMigration.cs index 07b13b4..92ee555 100644 --- a/Geekbot.net/Database/RedisMigration.cs +++ b/Geekbot.net/Database/RedisMigration.cs @@ -33,7 +33,7 @@ namespace Geekbot.net.Database _logger.Information(LogSource.Migration, "Starting migration process"); var keys = _redis.GetAllKeys().Where(e => e.ToString().EndsWith("Messages")); - var guilds = new List(); + var allGuilds = new List(); foreach (var key in keys) { @@ -41,7 +41,7 @@ namespace Geekbot.net.Database { var g = _client.GetGuild(ulong.Parse(key.ToString().Split(':').First())); Console.WriteLine(g.Name); - guilds.Add(g); + allGuilds.Add(g); } catch (Exception e) { @@ -49,16 +49,12 @@ namespace Geekbot.net.Database } } - _logger.Information(LogSource.Migration, $"Found {guilds.Count} guilds in redis"); + _logger.Information(LogSource.Migration, $"Found {allGuilds.Count} guilds in redis"); + var guilds = allGuilds.FindAll(e => e.MemberCount < 10000); + foreach (var guild in guilds) { - if (guild.MemberCount > 10000) - { - _logger.Information(LogSource.Migration, $"Skipping {guild.Name} because server size is to big ({guild.MemberCount})"); - break; - } - _logger.Information(LogSource.Migration, $"Start Migration for {guild.Name}"); #region Quotes /** @@ -315,7 +311,7 @@ namespace Geekbot.net.Database */ try { - var data = guild.Users; + var data = guild.Users.ToList().FindAll(e => !e.IsBot); foreach (var user in data) { try @@ -325,6 +321,7 @@ namespace Geekbot.net.Database await Task.Delay(100); if (user.Username == null) break; } + var namesSerialized = _redis.Db.HashGet($"User:{user.Id}", "UsedNames").ToString(); var names = namesSerialized != null ? Utf8Json.JsonSerializer.Deserialize(namesSerialized) diff --git a/Geekbot.net/Handlers.cs b/Geekbot.net/Handlers.cs index 9811432..64b3a15 100644 --- a/Geekbot.net/Handlers.cs +++ b/Geekbot.net/Handlers.cs @@ -183,8 +183,7 @@ namespace Geekbot.net try { var guildSocketData = ((IGuildChannel) channel).Guild; - var guild = _database.GuildSettings.FirstOrDefault(g => - g.GuildId.Equals(guildSocketData.Id.AsLong())); + var guild = _database.GuildSettings.FirstOrDefault(g => g.GuildId.Equals(guildSocketData.Id.AsLong())); if (guild?.ShowDelete ?? false) { var modChannelSocket = (ISocketMessageChannel) await _client.GetChannelAsync(guild.ModChannel.AsUlong());