Beispiel #1
0
        private ExternalContent GetContent(string url, out ShortUrlResult result)
        {
            result = new ShortUrlResult();
            ExternalContent externalContent = null;

            try
            {
                externalContent = externalContentService.Retrieve(url);
            }
            catch (WebException e)
            {
                result = new ShortUrlResult(new[] { new RuleViolation("url", e.Message) });
            }

            return(externalContent);
        }
        public SpamStatus CheckStatus(ShortUrl shortUrl)
        {
            Check.Argument.IsNotNull(shortUrl, "url");

            ExternalContent externalContent = null;

            try
            {
                externalContent = externalContentService.Retrieve(shortUrl.Url);
            }
            catch (WebException)
            {
            }

            if (externalContent == null)
            {
                return(SpamStatus.None);
            }

            if (string.IsNullOrEmpty(externalContent.Content))
            {
                return(SpamStatus.None);
            }

            string title        = externalContent.Title;
            string plainContent = externalContent.Content.StripHtml().Trim();

            if (!string.IsNullOrWhiteSpace(title) && GetBadWordExpressions().Any(expression => expression.IsMatch(title)))
            {
                return(SpamStatus.BadWord);
            }

            if (!string.IsNullOrWhiteSpace(plainContent) && GetBadWordExpressions().Any(expression => expression.IsMatch(plainContent)))
            {
                return(SpamStatus.BadWord);
            }

            return(SpamStatus.Clean);
        }