Ejemplo n.º 1
0
        public Task Scan(DiscordRequest request, Contexts contexts)
        {
            this._antiSpamService.AddUserMessage(contexts, request);
            var messagesInShortTime       = _antiSpamService.CountUserMessagesShorterTime(contexts.User.Id);
            var messagesInLongTime        = _antiSpamService.CountUserMessagesLongerTime(contexts.User.Id);
            var userWarnsInLastFewMinutes = _antiSpamService.CountUserWarnsInShortTime(contexts.User.Id);
            var userWarnsInLastFewHours   = _antiSpamService.CountUserWarnsInLongTime(contexts.User.Id);
            var userMutesInLastFewHours   = _antiSpamService.CountUserMutesInLongTime(contexts.User.Id);
            var userMessages = _userMessagesCountService.CountMessages(contexts.User.Id, contexts.Server.Id);

            Log.Information($"Warns in few minutes: {userWarnsInLastFewMinutes}; in few hours: {userWarnsInLastFewHours}");
            Log.Information($"Mutes in few hours: {userMutesInLastFewHours}");

            var punishment = _strategy.SelectPunishment(userWarnsInLastFewMinutes, userWarnsInLastFewHours, userMutesInLastFewHours, messagesInShortTime, messagesInLongTime, userMessages);

            _antiSpamService.SetPunishment(contexts, punishment);
            Log.Information("Scanned");
            return(Task.CompletedTask);
        }