private async Task FileUploadHandlerAsync(SocketMessage msgArg)
        {
            // Checks if it's a user message.
            var msg = msgArg as SocketUserMessage;

            if (msg == null)
            {
                return;
            }
            if (msg.Author.IsBot)
            {
                return;
            }
            // Checks if it's a guild message.
            var channel = msg.Channel as SocketGuildChannel;

            if (channel == null)
            {
                return;
            }
            // Checks if the guild has specified for conversion.
            var record = await _coreSettings.GetOrCreateGuildSettingsAsync(channel.Guild).ConfigureAwait(false);

            if (!record.IsGfyCatEnabled)
            {
                return;
            }
            // Begins attachment search.
            var attachments = msg.Attachments
                              .Where(att => att.Filename.EndsWith(".mov", StringComparison.OrdinalIgnoreCase) ||
                                     att.Filename.EndsWith(".webm", StringComparison.OrdinalIgnoreCase)).ToList();

            if (attachments.Count == 0)
            {
                return;
            }
            foreach (var attachment in attachments)
            {
                var _ = PerformGfyConversionAsync(attachment.Url, msg);
            }
        }
 private Task RegisterGuildAsync(SocketGuild guild) =>
 _coreSettings.GetOrCreateGuildSettingsAsync(guild);