Ejemplo n.º 1
0
        /// <summary>
        /// Report to service if comment is really spam
        /// </summary>
        /// <param name="comment">
        /// Comment object
        /// </param>
        public static void ReportMistake(Comment comment)
        {
            var m  = comment.ModeratedBy;
            var dt = customFilters.GetDataTable();
            var i  = 0;

            // rejecting auto-approved comment; all made mistake letting it through
            bool spamMissedByAll = comment.IsApproved && comment.ModeratedBy == "Auto";

            foreach (var filterName in from DataRow row in dt.Rows select row[0].ToString())
            {
                if (filterName == m || spamMissedByAll)
                {
                    var customFilter = GetCustomFilter(filterName);

                    if (customFilter != null)
                    {
                        var mistakes = int.Parse(customFilters.Parameters[4].Values[i]);
                        customFilters.Parameters[4].Values[i] = (mistakes + 1).ToString();

                        ExtensionManager.SaveSettings("MetaExtension", customFilters);

                        if (BlogSettings.Instance.CommentReportMistakes)
                        {
                            customFilter.Report(comment);
                        }
                    }
                    if (!spamMissedByAll)
                    {
                        break;
                    }
                }
                i++;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Report to service if comment is really spam
        /// </summary>
        /// <param name="comment">Comment object</param>
        public static void ReportMistake(Comment comment)
        {
            string m = comment.ModeratedBy;

            DataTable dt = _customFilters.GetDataTable();
            int       i  = 0;

            foreach (DataRow row in dt.Rows)
            {
                string fileterName = row[0].ToString();

                if (fileterName == m)
                {
                    ICustomFilter customFilter = GetCustomFilter(fileterName);

                    if (customFilter != null)
                    {
                        int mistakes = int.Parse(_customFilters.Parameters[4].Values[i]);
                        _customFilters.Parameters[4].Values[i] = (mistakes + 1).ToString();

                        customFilter.Report(comment);
                    }
                    break;
                }
                i++;
            }

            ExtensionManager.SaveSettings("MetaExtension", _customFilters);
        }
        private static string GetImagesHtmlList()
        {
            DataTable dt = _rotatorExtensionImages.GetDataTable();

            if (dt.Rows.Count == 0)
            {
                return("Empty");
            }

            StringBuilder sb = new StringBuilder();

            sb.AppendLine("<div id=\"featured\">");
//	   id=\"show\"
            sb.AppendLine("<ul id=\"show\">");
            foreach (DataRow dr in _rotatorExtensionImages.GetDataTable().Rows)
            {
                Post post = Post.GetPost(new Guid(dr["PostID"].ToString()));
                if (post == null)
                {
                    continue;
                }

                if (!post.IsVisibleToPublic)
                {
                    continue;
                }

                string featuredImage = dr["Image"].ToString();

                sb.AppendLine("<li>");
                sb.AppendLine("<span class=\"top\"></span>");
                sb.AppendLine("<span class=\"left\"><a class=\"prev\" href=\"#\" data-slide=\"prev\">‹</a></span>");
                sb.AppendLine("<span class=\"right\"><a class=\"next\" href=\"#\" data-slide=\"next\">›</a></span>");
                sb.AppendLine("<span class=\"bottom\"></span>");
                sb.AppendLine("<div class=\"desc\">");
                sb.AppendFormat("<h1><a href=\"{0}\" title=\"{1}\">{1}</a></h1>", post.RelativeLink, HttpUtility.HtmlEncode(post.Title));
                sb.AppendLine("<small>");
                foreach (Category category in post.Categories)
                {
                    sb.AppendFormat("<a class=\"accent\" href=\"{0}\">{1}</a>", category.RelativeLink, category.Title);
                }
                //DISQUS

                sb.AppendFormat("<a class=\"accent\" href=\"{0}#disqus_thread\">{1}</a>", post.PermaLink, "Comments");
                sb.AppendFormat("<a class=\"accent\" href=\"#\">{0}</a>", post.DateCreated.ToString("MMM dd, yyyy"));
                sb.AppendLine("</small>");
                sb.AppendLine("</div>");

                sb.AppendFormat("<a href=\"{0}\" title=\"{1}\"><img src=\"{2}\" alt=\"{1}\" height=\"260\" width=\"638\" /></a>", post.RelativeLink, HttpUtility.HtmlEncode(post.Title), featuredImage);

                sb.AppendLine("</li>");
            }

            sb.Append("</ul>");

            sb.Append("</div>");
            return(sb.ToString());
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Add item to white or black list
        /// </summary>
        /// <param name="subject">
        /// Item subject.
        /// </param>
        /// <param name="value">
        /// Item value.
        /// </param>
        /// <param name="isspam">
        /// True if comment is spam
        /// </param>
        public static void AddItemToFilter(string subject, string value, bool isspam)
        {
            var indx  = 0;
            var match = false;

            var dt = filters.GetDataTable();

            if (dt != null && dt.Rows.Count > 0)
            {
                foreach (DataRow row in dt.Rows)
                {
                    var rowSubject = row["Subject"].ToString();
                    var filter     = row["Filter"].ToString().Trim();

                    if (rowSubject.Equals(subject, StringComparison.OrdinalIgnoreCase) &&
                        filter.Equals(value, StringComparison.OrdinalIgnoreCase))
                    {
                        match = true;
                        break;
                    }

                    indx++;
                }
            }

            if (match)
            {
                var log = "Removed old filter ";

                // remove old filter
                foreach (var par in filters.Parameters)
                {
                    log += string.Format(":{0}", par.Values[indx]);
                    par.DeleteValue(indx);
                }

                ExtensionManager.SaveSettings("MetaExtension", filters);
                Utils.Log(log);
            }

            // add value to filters
            var id             = Guid.NewGuid().ToString();
            var action         = isspam ? "Block" : "Allow";
            var blackWhiteList = isspam ? "Black" : "White";
            var f = new[] { id, action, subject, "Equals", value };

            filters.AddValues(f);
            ExtensionManager.SaveSettings("MetaExtension", filters);

            Utils.Log(string.Format("{0} added to {1} list: {2}", subject, blackWhiteList, value));
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Get list of custom filters
        /// </summary>
        /// <returns>List of filters</returns>
        public static List <JsonCustomFilter> GetCustomFilters()
        {
            var filterList = new List <JsonCustomFilter>();

            try
            {
                CustomFilters = ExtensionManager.GetSettings("MetaExtension", "BeCustomFilters");
                DataTable dt = CustomFilters.GetDataTable();

                foreach (DataRow row in dt.Rows)
                {
                    var f = new JsonCustomFilter
                    {
                        Name     = row["Name"].ToString(),
                        FullName = row["FullName"].ToString(),
                        Checked  = int.Parse(row["Checked"].ToString()),
                        Spam     = int.Parse(row["Cought"].ToString()),
                        Mistakes = int.Parse(row["Reported"].ToString())
                    };

                    var ext = ExtensionManager.GetExtension(f.Name);
                    f.Enabled = ext == null ? true : ext.Enabled;

                    filterList.Add(f);
                }
            }
            catch (Exception ex)
            {
                Utils.Log("JsonCustomFilterList.GetCustomFilters(): " + ex.Message);
            }
            return(filterList);
        }
        /// <summary>
        /// Get list of custom filters
        /// </summary>
        /// <returns>List of filters</returns>
        public static List<JsonCustomFilter> GetCustomFilters()
        {
            var filterList = new List<JsonCustomFilter>();
            try
            {
                CustomFilters = ExtensionManager.GetSettings("MetaExtension", "BeCustomFilters");
                DataTable dt = CustomFilters.GetDataTable();

                foreach (DataRow row in dt.Rows)
                {
                    var f = new JsonCustomFilter
                    {
                        Name = row["Name"].ToString(),
                        FullName = row["FullName"].ToString(),
                        Checked = int.Parse(row["Checked"].ToString()),
                        Spam = int.Parse(row["Cought"].ToString()),
                        Mistakes = int.Parse(row["Reported"].ToString())
                    };

                    var ext = ExtensionManager.GetExtension(f.Name);
                    f.Enabled = ext == null ? true : ext.Enabled;

                    filterList.Add(f);
                }
            }
            catch (Exception ex)
            {
                Utils.Log("JsonCustomFilterList.GetCustomFilters(): " + ex.Message);
            }
            return filterList;
        }
        /// <summary>
        /// Comment filters list
        /// </summary>
        /// <param name="take"></param>
        /// <param name="skip"></param>
        /// <param name="filter"></param>
        /// <param name="order"></param>
        /// <returns>List of comment filters</returns>
        public IEnumerable <CommentFilterItem> Find(int take = 10, int skip = 0, string filter = "", string order = "")
        {
            if (!Security.IsAuthorizedTo(Rights.AccessAdminPages))
            {
                throw new UnauthorizedAccessException();
            }

            var filterList = new List <CommentFilterItem>();

            try
            {
                Filters = ExtensionManager.GetSettings("MetaExtension", "BeCommentFilters");
                DataTable dt = Filters.GetDataTable();

                foreach (DataRow row in dt.Rows)
                {
                    var f = new CommentFilterItem
                    {
                        Id        = Guid.Parse(row["Id"].ToString()),
                        Action    = row["Action"].ToString(),
                        Subject   = row["Subject"].ToString(),
                        Operation = row["Operator"].ToString(),
                        Filter    = row["Filter"].ToString()
                    };
                    filterList.Add(f);
                }

                if (take == 0)
                {
                    take = filterList.Count;
                }
                if (string.IsNullOrEmpty(filter))
                {
                    filter = "1==1";
                }
                if (string.IsNullOrEmpty(order))
                {
                    order = "Filter";
                }

                var items = new List <CommentFilterItem>();
                var query = filterList.AsQueryable().Where(filter);

                foreach (var item in query.OrderBy(order).Skip(skip).Take(take))
                {
                    items.Add(item);
                }

                return(items);
            }
            catch (Exception ex)
            {
                Utils.Log("CommentFilterRepository.Find(): " + ex.Message);
            }
            return(filterList);
        }
Ejemplo n.º 8
0
        protected void BindFilters()
        {
            gridFilters.DataKeyNames = new string[] { Filters.KeyField };
            gridFilters.DataSource   = Filters.GetDataTable();
            gridFilters.DataBind();

            // rules
            cbTrustAuthenticated.Checked                = BlogSettings.Instance.TrustAuthenticatedUsers;
            ddWhiteListCount.SelectedValue              = BlogSettings.Instance.CommentWhiteListCount.ToString();
            ddBlackListCount.SelectedValue              = BlogSettings.Instance.CommentBlackListCount.ToString();
            cbReportMistakes.Checked                    = BlogSettings.Instance.CommentReportMistakes;
            cbBlockOnDelete.Checked                     = BlogSettings.Instance.BlockAuthorOnCommentDelete;
            cbAddIpToWhitelistFilterOnApproval.Checked  = BlogSettings.Instance.AddIpToWhitelistFilterOnApproval;
            cbAddIpToBlacklistFilterOnRejection.Checked = BlogSettings.Instance.AddIpToBlacklistFilterOnRejection;
        }
Ejemplo n.º 9
0
    protected void BindCustomFilters()
    {
        gridCustomFilters.DataKeyNames = new string[] { _customFilters.KeyField };

        DataTable dt       = _customFilters.GetDataTable();
        DataTable unsorted = dt.Clone();
        DataTable sorted   = dt.Clone();

        foreach (DataRow row in dt.Rows)
        {
            int i = int.TryParse(row["Priority"].ToString(), out i) ? i : 0;

            if (i > 0)
            {
                sorted.ImportRow(row);
            }
            else
            {
                unsorted.ImportRow(row);
            }
        }

        foreach (DataRow row in unsorted.Rows)
        {
            row["Priority"] = sorted.Rows.Count + 1;
            sorted.ImportRow(row);

            int rowIndex = 0;

            for (int i = 0; i < _customFilters.Parameters[0].Values.Count; i++)
            {
                if (_customFilters.Parameters[0].Values[i] == row["FullName"].ToString())
                {
                    _customFilters.Parameters[5].Values[i] = row["Priority"].ToString();
                }
            }
        }

        ExtensionManager.SaveSettings("MetaExtension", _customFilters);

        sorted.DefaultView.Sort      = "Priority";
        gridCustomFilters.DataSource = sorted;
        gridCustomFilters.DataBind();
    }
Ejemplo n.º 10
0
        static void InitCustomFilters()
        {
            ExtensionSettings settings = new ExtensionSettings("BeCustomFilters");

            settings.AddParameter("FullName", "Name", 100, true, true);
            settings.AddParameter("Name");
            settings.AddParameter("Checked");
            settings.AddParameter("Cought");
            settings.AddParameter("Reported");
            settings.AddParameter("Priority");

            _customFilters = ExtensionManager.InitSettings("MetaExtension", settings);

            if (_customFilters != null)
            {
                DataTable dt             = _customFilters.GetDataTable();
                ArrayList codeAssemblies = Utils.CodeAssemblies();

                foreach (Assembly a in codeAssemblies)
                {
                    Type[] types = a.GetTypes();
                    foreach (Type type in types)
                    {
                        if (type.GetInterface("BlogEngine.Core.ICustomFilter") != null)
                        {
                            bool found = false;
                            foreach (DataRow row in dt.Rows)
                            {
                                if (row[0].ToString() == type.Name)
                                {
                                    found = true;
                                    break;
                                }
                            }
                            if (!found)
                            {
                                _customFilters.AddValues(new string[] { type.FullName, type.Name, "0", "0", "0", "0" });
                            }
                        }
                    }
                }
                ExtensionManager.SaveSettings("MetaExtension", _customFilters);
            }
        }
Ejemplo n.º 11
0
    /// <summary>
    /// The event handler that is triggered every time a comment is served to a client.
    /// </summary>
    private static void Post_CommentServing(object sender, ServingEventArgs e)
    {
        string body = e.Body;

        // retrieve parameters back as a data table
        // column = parameter
        DataTable table = _settings.GetDataTable();

        foreach (DataRow row in table.Rows)
        {
            if (string.IsNullOrEmpty((string)row["CloseTag"]))
            {
                Parse(ref body, (string)row["Code"], (string)row["OpenTag"]);
            }
            else
            {
                Parse(ref body, (string)row["Code"], (string)row["OpenTag"], (string)row["CloseTag"]);
            }
        }

        e.Body = body;
    }
        /// <summary>
        /// Get list of custom filters
        /// </summary>
        /// <returns>List of filters</returns>
        public IEnumerable <CustomFilter> GetCustomFilters()
        {
            if (!Security.IsAuthorizedTo(Rights.AccessAdminPages))
            {
                throw new UnauthorizedAccessException();
            }

            var filterList = new List <CustomFilter>();

            try
            {
                CustomFilters = ExtensionManager.GetSettings("MetaExtension", "BeCustomFilters");
                DataTable dt = CustomFilters.GetDataTable();

                foreach (DataRow row in dt.Rows)
                {
                    var f = new CustomFilter
                    {
                        Name     = row["Name"].ToString(),
                        FullName = row["FullName"].ToString(),
                        Checked  = int.Parse(row["Checked"].ToString()),
                        Spam     = int.Parse(row["Cought"].ToString()),
                        Mistakes = int.Parse(row["Reported"].ToString())
                    };

                    var ext = ExtensionManager.GetExtension(f.Name);
                    f.Enabled = ext == null ? true : ext.Enabled;

                    filterList.Add(f);
                }
            }
            catch (Exception ex)
            {
                Utils.Log("CustomFilterRepository.GetCustomFilters(): " + ex.Message);
            }
            return(filterList);
        }
Ejemplo n.º 13
0
    /// <summary>
    /// Displays BBCodes dynamically loaded from settings.
    /// </summary>
    protected string BBCodes()
    {
        try
        {
            string retVal = string.Empty;
            string title  = string.Empty;
            string code   = string.Empty;

            ExtensionSettings settings = ExtensionManager.GetSettings("BBCode");
            DataTable         table    = settings.GetDataTable();

            foreach (DataRow row in table.Rows)
            {
                code    = (string)row["Code"];
                title   = "[" + code + "][/" + code + "]";
                retVal += "<a title=\"" + title + "\" href=\"javascript:void(BlogEngine.addBbCode('" + code + "'))\">" + code + "</a>";
            }
            return(retVal);
        }
        catch (Exception)
        {
            return(string.Empty);
        }
    }
Ejemplo n.º 14
0
        /// <summary>
        /// The init custom filters.
        /// </summary>
        private static void InitCustomFilters()
        {
            var settings = new ExtensionSettings("BeCustomFilters");

            settings.AddParameter("FullName", "Name", 100, true, true);
            settings.AddParameter("Name");
            settings.AddParameter("Checked");
            settings.AddParameter("Cought");
            settings.AddParameter("Reported");
            settings.AddParameter("Priority");

            customFilters = ExtensionManager.InitSettings("MetaExtension", settings);
            if (customFilters == null)
            {
                return;
            }

            var dt             = customFilters.GetDataTable();
            var codeAssemblies = Utils.CodeAssemblies();

            foreach (var type in
                     codeAssemblies.Cast <Assembly>().Select(a => a.GetTypes()).SelectMany(
                         types => (from type in types
                                   where type.GetInterface("BlogEngine.Core.ICustomFilter") != null
                                   let found = dt.Rows.Cast <DataRow>().Any(row => row[0].ToString() == type.Name)
                                               where !found
                                               select type)))
            {
                // if new filter found in the assembly, add it to settings
                if (!customFilters.IsKeyValueExists(type.FullName))
                {
                    customFilters.AddValues(new[] { type.FullName, type.Name, "0", "0", "0", "0" });
                    ExtensionManager.SaveSettings("MetaExtension", customFilters);
                }
            }
        }
Ejemplo n.º 15
0
 protected void BindFilters()
 {
     gridFilters.DataKeyNames = new string[] { _filters.KeyField };
     gridFilters.DataSource   = _filters.GetDataTable();
     gridFilters.DataBind();
 }
Ejemplo n.º 16
0
        static void InitCustomFilters()
        {
            ExtensionSettings settings = new ExtensionSettings("BeCustomFilters");

            settings.AddParameter("FullName", "Name", 100, true, true);
            settings.AddParameter("Name");
            settings.AddParameter("Checked");
            settings.AddParameter("Cought");
            settings.AddParameter("Reported");
            settings.AddParameter("Priority");

            _customFilters = ExtensionManager.InitSettings("MetaExtension", settings);

            if(_customFilters != null)
            {
                DataTable dt = _customFilters.GetDataTable();
                ArrayList codeAssemblies = Utils.CodeAssemblies();

                foreach (Assembly a in codeAssemblies)
                {
                    Type[] types = a.GetTypes();
                    foreach (Type type in types)
                    {
                        if (type.GetInterface("BlogEngine.Core.ICustomFilter") != null)
                        {
                            bool found = false;
                            foreach (DataRow row in dt.Rows)
                            {
                                if(row[0].ToString() == type.Name)
                                {
                                    found = true;
                                    break;
                                }
                            }
                            if(!found)
                            {
                                _customFilters.AddValues(new string[] { type.FullName, type.Name, "0", "0", "0", "0" });
                            }
                        }
                    }
                }
                ExtensionManager.SaveSettings("MetaExtension", _customFilters);
            }
        }
Ejemplo n.º 17
0
 /// <summary>
 /// Handles page changing event in the data grid
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 protected void grid_PageIndexChanging(object sender, GridViewPageEventArgs e)
 {
     grid.PageIndex  = e.NewPageIndex;
     grid.DataSource = _settings.GetDataTable();
     grid.DataBind();
 }
Ejemplo n.º 18
0
    /// <summary>
    /// Serving AdSense code in post and page
    /// </summary>
    private static void Serving(object sender, ServingEventArgs e)
    {
        if (_settings.Parameters.Count > 0)
        {
            if ((e.Location == ServingLocation.SinglePage || e.Location == ServingLocation.SinglePost) &&
                (!e.Body.Contains(_noAdsense)) && (!System.Threading.Thread.CurrentPrincipal.Identity.IsAuthenticated))
            {
                DataTable table = _settings.GetDataTable();
                Int32     count = 0;
                // Post or page ?
                bool where = false;
                // Referrer Type
                string referrer_type = "A";
                // Referring object: verify if post or page and assign the author
                string Author = "";
                if (e.Location == ServingLocation.SinglePost)
                {
                    Post post = (Post)sender;
                    Author = post.Author.ToLower();
                }
                if (HttpContext.Current.Request.UrlReferrer != null)
                {
                    string referrer = HttpContext.Current.Request.UrlReferrer.ToString().ToLowerInvariant();
                    if (!referrer.Contains(Utils.AbsoluteWebRoot.Host.ToString()) && referrer != "")
                    {
                        referrer_type += "R";
                        if (!referrer.Contains("q="))
                        {
                            referrer_type += "S";
                        }
                    }
                }

                foreach (DataRow row in table.Rows)
                {
                    if ((((string)row["ad_author"]).ToLower()) == Author || (((string)row["ad_author"]).ToLower()) == _adForever)
                    {
                        if ((((string)row["ad_where"]).ToUpper()) == "B" || (((string)row["ad_where"]).ToUpper()) == "")
                        {
                            where = true;
                        }
                        else
                        {
                            if ((((string)row["ad_where"]).ToUpper()) == "P" && e.Location == ServingLocation.SinglePost)
                            {
                                where = true;
                            }
                            else
                            {
                                if ((((string)row["ad_where"]).ToUpper()) == "A" && e.Location == ServingLocation.SinglePage)
                                {
                                    where = true;
                                }
                                else
                                {
                                    where = false;
                                }
                            }
                        }

                        if (referrer_type.Contains(((string)row["ad_display"]).ToUpper()) && (string)row["ad_Desc"] != "" && where == true)
                        {
                            string _adScript = string.Format(Html, (string)row["ad_PubID"], (string)row["ad_Desc"],
                                                             (string)row["ad_ID"], (string)row["ad_size_w"], (string)row["ad_size_h"],
                                                             (string)row["ad_style"]);
                            string _adPosition = ((string)row["ad_position"]).ToUpper();
                            if (_adPosition == "R")
                            {
                                Random autoRand = new Random();
                                string choices  = "TCB";
                                _adPosition = choices.Substring(autoRand.Next(3), 1);
                            }
                            switch (_adPosition)
                            {
                            case "T":
                                e.Body = _adScript + e.Body;
                                break;

                            case "C":
                                Int32 _center = BodyCenter(e.Body);
                                if (_center > 0)
                                {
                                    e.Body = e.Body.Substring(0, _center - 1) + _adScript + e.Body.Substring(_center);
                                }
                                break;

                            case "B":
                                e.Body += _adScript;
                                break;

                            default:
                                e.Body = _adScript + e.Body;
                                break;
                            }
                            count += 1;
                        }
                    }
                    if (count == 3)
                    {
                        break;
                    }
                }
            }
        }
        if (e.Location != ServingLocation.Feed)
        {
            //e.Body = "<!-- google_ad_section_start -->\n" + e.Body + "<!-- google_ad_section_end -->\n";
            // if post or page contains noAdsense string then replace with null
            if (e.Body.Contains(_noAdsense))
            {
                e.Body = e.Body.Replace(_noAdsense, "");
            }
        }
    }
Ejemplo n.º 19
0
        static bool ModeratedByFilter(Comment comment)
        {
            DataTable dt = _filters.GetDataTable();

            if (dt != null && dt.Rows.Count > 0)
            {
                foreach (DataRow row in dt.Rows)
                {
                    string action = row["Action"].ToString();

                    if (action == "Delete")
                    {
                        comment.IsApproved  = false;
                        comment.ModeratedBy = "Delete";
                        return(true);
                    }

                    string subject = row["Subject"].ToString();
                    string oper    = row["Operator"].ToString();
                    string filter  = row["Filter"].ToString().Trim().ToLower(CultureInfo.InvariantCulture);

                    string comm = comment.Content.ToLower(CultureInfo.InvariantCulture);
                    string auth = comment.Author.ToLower(CultureInfo.InvariantCulture);

                    string wsite = string.Empty;
                    if (comment.Website != null)
                    {
                        wsite = comment.Website.ToString().ToLower(CultureInfo.InvariantCulture);
                    }

                    string email = comment.Email.ToLower(CultureInfo.InvariantCulture);

                    bool match = false;

                    if (oper == "Equals")
                    {
                        if (subject == "IP")
                        {
                            if (comment.IP == filter)
                            {
                                match = true;
                            }
                        }
                        if (subject == "Author")
                        {
                            if (auth == filter)
                            {
                                match = true;
                            }
                        }
                        if (subject == "Website")
                        {
                            if (wsite == filter)
                            {
                                match = true;
                            }
                        }
                        if (subject == "Email")
                        {
                            if (email == filter)
                            {
                                match = true;
                            }
                        }
                        if (subject == "Comment")
                        {
                            if (comm == filter)
                            {
                                match = true;
                            }
                        }
                    }
                    else
                    {
                        if (subject == "IP")
                        {
                            if (comment.IP.Contains(filter))
                            {
                                match = true;
                            }
                        }
                        if (subject == "Author")
                        {
                            if (auth.Contains(filter))
                            {
                                match = true;
                            }
                        }
                        if (subject == "Website")
                        {
                            if (wsite.Contains(filter))
                            {
                                match = true;
                            }
                        }
                        if (subject == "Email")
                        {
                            if (email.Contains(filter))
                            {
                                match = true;
                            }
                        }
                        if (subject == "Comment")
                        {
                            if (comm.Contains(filter))
                            {
                                match = true;
                            }
                        }
                    }

                    if (match)
                    {
                        comment.IsApproved  = action != "Block";
                        comment.ModeratedBy = "Filter";
                        return(true);
                    }
                }
            }
            return(false);
        }