예제 #1
0
        /// <summary>
        ///     Determines whether the specified crawl request is disallowed.
        /// </summary>
        /// <param name = "crawlRequest">The crawl request.</param>
        /// <param name = "arachnodeDAO">The arachnode DAO.</param>
        /// <returns>
        ///     <c>true</c> if the specified crawl request is disallowed; otherwise, <c>false</c>.
        /// </returns>
        public override bool IsDisallowed(CrawlRequest <TArachnodeDAO> crawlRequest, IArachnodeDAO arachnodeDAO)
        {
            bool isDisallowed = false;

            if (crawlRequest.DataType.DiscoveryType == DiscoveryType.WebPage)
            {
                crawlRequest.OutputIsDisallowedReason = OutputIsDisallowedReason;
                crawlRequest.IsDisallowedReason       = "Disallowed by Source.";

                if (UserDefinedFunctions.IsDisallowedForSource(crawlRequest.DecodedHtml, false))
                {
                    isDisallowed = true;
                }

                if (_negateIsDisallowed)
                {
                    isDisallowed = !isDisallowed;
                }
            }

            return(isDisallowed);
        }