From 4a11ce62077ff2e0b40bb5066fa2653497646648 Mon Sep 17 00:00:00 2001 From: runebaas Date: Sun, 13 May 2018 21:33:48 +0200 Subject: [PATCH] Add Guild Settings to redis migration --- Geekbot.net/Commands/User/Ranking/Rank.cs | 44 +++++------------- Geekbot.net/Database/RedisMigration.cs | 56 +++++++++++++++++++++++ 2 files changed, 68 insertions(+), 32 deletions(-) diff --git a/Geekbot.net/Commands/User/Ranking/Rank.cs b/Geekbot.net/Commands/User/Ranking/Rank.cs index 027f41f..6e3a1d8 100644 --- a/Geekbot.net/Commands/User/Ranking/Rank.cs +++ b/Geekbot.net/Commands/User/Ranking/Rank.cs @@ -4,12 +4,10 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using Discord.Commands; -using Discord.WebSocket; using Geekbot.net.Database; using Geekbot.net.Lib.Converters; using Geekbot.net.Lib.ErrorHandling; using Geekbot.net.Lib.Extensions; -using Geekbot.net.Lib.Logger; using Geekbot.net.Lib.UserRepository; using StackExchange.Redis; @@ -19,21 +17,17 @@ namespace Geekbot.net.Commands.User.Ranking { private readonly IEmojiConverter _emojiConverter; private readonly IErrorHandler _errorHandler; - private readonly IGeekbotLogger _logger; private readonly DatabaseContext _database; private readonly IUserRepository _userRepository; - private readonly DiscordSocketClient _client; private readonly IDatabase _redis; - public Rank(DatabaseContext database, IErrorHandler errorHandler, IGeekbotLogger logger, IUserRepository userRepository, - IEmojiConverter emojiConverter, DiscordSocketClient client, IDatabase redis) + public Rank(DatabaseContext database, IErrorHandler errorHandler, IUserRepository userRepository, + IEmojiConverter emojiConverter, IDatabase redis) { _database = database; _errorHandler = errorHandler; - _logger = logger; _userRepository = userRepository; _emojiConverter = emojiConverter; - _client = client; _redis = redis; } @@ -144,42 +138,28 @@ namespace Geekbot.net.Commands.User.Ranking private Dictionary GetMessageList(int amount) { - - var data = _redis.HashGetAll($"{Context.Guild.Id}:Messages").ToDictionary().Take(amount + 1); - - return data.Where(user => !user.Key.Equals(0)).ToDictionary(user => ulong.Parse(user.Key), user => int.Parse(user.Value)); + return _redis + .HashGetAll($"{Context.Guild.Id}:Messages").ToDictionary().Take(amount + 1) + .Where(user => !user.Key.Equals(0)) + .ToDictionary(user => ulong.Parse(user.Key), user => int.Parse(user.Value)); } private Dictionary GetKarmaList(int amount) { - var data = _database.Karma + return _database.Karma .Where(k => k.GuildId.Equals(Context.Guild.Id.AsLong())) .OrderByDescending(o => o.Karma) - .Take(amount); - - var dict = new Dictionary(); - foreach (var user in data) - { - dict.Add(user.UserId.AsUlong(), user.Karma); - } - - return dict; + .Take(amount) + .ToDictionary(key => key.UserId.AsUlong(), key => key.Karma); } private Dictionary GetRollsList(int amount) { - var data = _database.Rolls + return _database.Rolls .Where(k => k.GuildId.Equals(Context.Guild.Id.AsLong())) .OrderByDescending(o => o.Rolls) - .Take(amount); - - var dict = new Dictionary(); - foreach (var user in data) - { - dict.Add(user.UserId.AsUlong(), user.Rolls); - } - - return dict; + .Take(amount) + .ToDictionary(key => key.UserId.AsUlong(), key => key.Rolls); } } } \ No newline at end of file diff --git a/Geekbot.net/Database/RedisMigration.cs b/Geekbot.net/Database/RedisMigration.cs index 237ce60..25a7ee5 100644 --- a/Geekbot.net/Database/RedisMigration.cs +++ b/Geekbot.net/Database/RedisMigration.cs @@ -230,6 +230,62 @@ namespace Geekbot.net.Database } #endregion + #region GuildSettings + /** + * Users + */ + try + { + var data = _redis.HashGetAll($"{guild.Id}:Settings"); + var settings = new GuildSettingsModel() + { + GuildId = guild.Id.AsLong(), + Hui = true + }; + foreach (var setting in data) + { + try + { + switch (setting.Name) + { + case "ShowLeave": + settings.ShowLeave = setting.Value.ToString() == "1"; + break; + case "WikiDel": + settings.ShowDelete = setting.Value.ToString() == "1"; + break; + case "WikiLang": + settings.WikiLang = setting.Value.ToString(); + break; + case "Language": + settings.Language = setting.Value.ToString(); + break; + case "WelcomeMsg": + settings.WelcomeMessage = setting.Value.ToString(); + break; + case "ping": + settings.Ping = bool.Parse(setting.Value.ToString()); + break; + case "ModChannel": + settings.ModChannel = long.Parse(setting.Value); + break; + default: + throw new NotImplementedException(); + } + } + catch + { + _logger.Warning(LogSource.Geekbot, $"Setting failed: {setting.Name} - {guild.Id}"); + } + } + } + catch + { + _logger.Warning(LogSource.Geekbot, "Settings migration failed"); + } + + #endregion + #region Users /** * Users