Beispiel #1
0
        public SpamStatus CheckForSpam(SpamFilterPart part)
        {
            var settings = part.TypePartDefinition.Settings.GetModel <SpamFilterPartSettings>();

            // evaluate the text to submit to the spam filters
            var text = _tokenizer.Replace(settings.Pattern, new Dictionary <string, object> {
                { "Content", part.ContentItem }
            });

            var result = CheckForSpam(text, settings.Action);

            // trigger events and rules
            switch (result)
            {
            case SpamStatus.Spam:
                _spamEventHandler.SpamReported(part);
                _rulesManager.TriggerEvent("AntiSpam", "Spam", () => new Dictionary <string, object> {
                    { "Content", part.ContentItem }
                });
                break;

            case SpamStatus.Ham:
                _spamEventHandler.HamReported(part);
                _rulesManager.TriggerEvent("AntiSpam", "Ham", () => new Dictionary <string, object> {
                    { "Content", part.ContentItem }
                });
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            return(result);
        }
        public SpamStatus CheckForSpam(SpamFilterPart part) {

            var settings = part.TypePartDefinition.Settings.GetModel<SpamFilterPartSettings>();

            // evaluate the text to submit to the spam filters
            var text = _tokenizer.Replace(settings.Pattern, new Dictionary<string, object> { { "Content", part.ContentItem } });

            var result = CheckForSpam(text, settings.Action);

            // trigger events and rules
            switch (result) {
                case SpamStatus.Spam:
                    _spamEventHandler.SpamReported(part);
                    _rulesManager.TriggerEvent("AntiSpam", "Spam", () => new Dictionary<string, object> { { "Content", part.ContentItem } });
                    break;
                case SpamStatus.Ham:
                    _spamEventHandler.HamReported(part);
                    _rulesManager.TriggerEvent("AntiSpam", "Ham", () => new Dictionary<string, object> { { "Content", part.ContentItem } });
                    break;
                default:
                    throw new ArgumentOutOfRangeException();
            }

            return result;
        }
Beispiel #3
0
        private CommentCheckContext CreateCommentCheckContext(SpamFilterPart part, WorkContext workContext)
        {
            var settings = part.TypePartDefinition.Settings.GetModel <SpamFilterPartSettings>();

            var data = new Dictionary <string, object> {
                { "Content", part.ContentItem }
            };

            var context = new CommentCheckContext {
                Url                = _tokenizer.Replace(settings.UrlPattern, data),
                Permalink          = _tokenizer.Replace(settings.PermalinkPattern, data),
                CommentAuthor      = _tokenizer.Replace(settings.CommentAuthorPattern, data),
                CommentAuthorEmail = _tokenizer.Replace(settings.CommentAuthorEmailPattern, data),
                CommentAuthorUrl   = _tokenizer.Replace(settings.CommentAuthorUrlPattern, data),
                CommentContent     = _tokenizer.Replace(settings.CommentContentPattern, data),
                CommentType        = part.ContentItem.ContentType.ToLower()
            };

            if (workContext.HttpContext != null)
            {
                context.UserIp    = workContext.HttpContext.Request.ServerVariables["REMOTE_ADDR"];
                context.UserAgent = workContext.HttpContext.Request.UserAgent;
                context.Referrer  = Convert.ToString(workContext.HttpContext.Request.UrlReferrer);
            }

            return(context);
        }
        public void ReportSpam(SpamFilterPart part) {
            var settings = part.TypePartDefinition.Settings.GetModel<SpamFilterPartSettings>();

            // evaluate the text to submit to the spam filters
            var text = _tokenizer.Replace(settings.Pattern, new Dictionary<string, object> { { "Content", part.ContentItem } });

            ReportSpam(text);
        }
Beispiel #5
0
        public void ReportHam(SpamFilterPart part)
        {
            var settings = part.TypePartDefinition.Settings.GetModel <SpamFilterPartSettings>();

            // evaluate the text to submit to the spam filters
            var text = _tokenizer.Replace(settings.Pattern, new Dictionary <string, object> {
                { "Content", part.ContentItem }
            });

            ReportHam(text);
        }
Beispiel #6
0
        public SpamStatus CheckForSpam(SpamFilterPart part) {
            var settings = part.TypePartDefinition.Settings.GetModel<SpamFilterPartSettings>();
            var context = CreateCommentCheckContext(part, _workContextAccessor.GetContext());

            if (string.IsNullOrWhiteSpace(context.CommentContent)) {
                return SpamStatus.Ham;
            }

            var result = CheckForSpam(context, settings.Action, part);

            return result;
        }
Beispiel #7
0
        public SpamStatus CheckForSpam(SpamFilterPart part)
        {
            var settings = part.TypePartDefinition.Settings.GetModel <SpamFilterPartSettings>();
            var context  = CreateCommentCheckContext(part, _workContextAccessor.GetContext());

            if (string.IsNullOrWhiteSpace(context.CommentContent))
            {
                return(SpamStatus.Ham);
            }

            var result = CheckForSpam(context, settings.Action, part);

            return(result);
        }
Beispiel #8
0
 public void ReportHam(SpamFilterPart part)
 {
     ReportHam(CreateCommentCheckContext(part, _workContextAccessor.GetContext()));
 }
Beispiel #9
0
 public void ReportSpam(SpamFilterPart part) {
    ReportSpam(CreateCommentCheckContext(part, _workContextAccessor.GetContext()));
 }
Beispiel #10
0
        private CommentCheckContext CreateCommentCheckContext(SpamFilterPart part, WorkContext workContext) {
            var settings = part.TypePartDefinition.Settings.GetModel<SpamFilterPartSettings>();

            var data = new Dictionary<string, object> {{"Content", part.ContentItem}};

            var context = new CommentCheckContext {
                Url = _tokenizer.Replace(settings.UrlPattern, data),
                Permalink = _tokenizer.Replace(settings.PermalinkPattern, data),
                CommentAuthor = _tokenizer.Replace(settings.CommentAuthorPattern, data),
                CommentAuthorEmail = _tokenizer.Replace(settings.CommentAuthorEmailPattern, data),
                CommentAuthorUrl = _tokenizer.Replace(settings.CommentAuthorUrlPattern, data),
                CommentContent = _tokenizer.Replace(settings.CommentContentPattern, data),
            };

            if(workContext.HttpContext != null) {
                context.UserIp = workContext.HttpContext.Request.ServerVariables["REMOTE_ADDR"];
                context.UserAgent = workContext.HttpContext.Request.UserAgent;
                context.Referrer = Convert.ToString(workContext.HttpContext.Request.UrlReferrer);
            }

            return context;
        }